node.js - Elasticsearch:搜索具有映射not_analyzed的字段不会有任何结果

标签 node.js elasticsearch mapping

我正在运行elasticsearch并使用nodejs进行所有请求。
我将以下映射应用于索引“mastert4”:

{
  "mappings": {
    "mastert4": {
      "properties": {
        "s": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}

我向索引中只添加了一个文档,看起来像这样:
{
  "master": {
    "vi": "ff155d9696818dde0627e14c79ba5d344c3ef01d",
    "s": "Anne Will"
  }
}

现在,执行以下任何搜索查询都不会返回任何匹配:
{
  "index": "mastert4",
  "body": {
    "query": {
      "filtered": {
        "query": {
          "match"/"term": {
            "s": "anne will"/"Anne Will"
         }
       }
     }
   }
 }

}

但是以下查询将返回确切的文档:
    {
      "index": "mastert4",
      "body": {
        "query": {
          "filtered": {
            "query": {
              "constant_score": {
                "filter": [
                  {
                    "missing": {
                      "field": "s"
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }

如果我搜寻
    {
      "exists": {
        "field": "s"
      }
    }

我不会再有任何点击的。

分析自己的 Realm 时,我得到:
{
  "tokens": [
    {
      "token": "Anne Will",
      "start_offset": 0,
      "end_offset": 9,
      "type": "word",
      "position": 1
    }
  ]
}

我真的在这里死胡同了。有人可以告诉我我做错了什么吗?谢谢!!!!

最佳答案

您已将字段svi封闭在名为master的外部字段中,该字段未在映射中声明。这就是原因。如果您查询master.s,您将获得结果。

第二种解决方案是删除文档中包含的master对象,这也将起作用:

{
    "vi": "ff155d9696818dde0627e14c79ba5d344c3ef01d",
    "s": "Anne Will"
}

关于node.js - Elasticsearch:搜索具有映射not_analyzed的字段不会有任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657549/

相关文章:

node.js - 对于路径 mongoose 处的值对象对象,转换为 objectid 失败

node.js - 如何在几个模块中使用 Winston?

amazon-web-services - 不允许重新索引 Elasticsearch?

ruby-on-rails - Rails 模型的 XML 映射和验证

javascript - 生成的解析器在 Node.js 上为转义引号抛出错误

javascript - 如何使用Puppeteer统计网页上特定文本的出现次数?

elasticsearch - 我是ES新手,在ES中有一个多匹配查询,并且想根据其可用性考虑字段

elasticsearch - 在映射/模板上启用文档值?

objective-c - 如何将 xml(对象)映射到 Objective-C 中的方法?

iphone - 在 iOS 中测量/计算距离