使用术语时,ElasticSearch会产生错误的结果

时间:2016-11-16 17:06:22

标签: elasticsearch

我有一个使用以下结构在ElasticSearch上编制索引的文档列表

{
  "product_id": "xx",
  "product_desc":"some product desc"
} 

当我使用term执行搜索时,如下所示,我得到了正确的结果:

GET my_index/my_doctype/_search
{"query": 
 {
  "match":{"product_id": "138156"}
  }
}

但是,当我使用术语执行相同的搜索时,我得到了错误的结果

GET my_index/my_doctype/_search
{
          "query": {
            "terms": {
              "product_id": ["138156"]
        }
  }
}

对于某些产品而非所有产品都会发生这种情况。有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

要使术语查询在字符串字段上正常工作,必须对该字段进行非分析。例如,请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html