elasticsearch,在字段中查找确切短语

时间:2018-11-28 11:17:10

标签: elasticsearch exact-match

我想在单个字段中搜索确切的短语。这是我的方法:

"query": {
  "match_phrase": {                                             
    "word": "developer"
  }
}

但要点是,此查询将找到任何具有关键字developer的文档:

"word": "developer""word": "php developer"

如何创建查询,当我搜索developer时只返回"word": "developer“文档,

当我搜索php developer时,返回"word": "php developer"文档

谢谢

1 个答案:

答案 0 :(得分:2)

以一种简单的方式,如果您的字段word的类型为keyword,则可以使用Term Query,如下所示:

POST <your_index_name>/_search
{
  "query": {
    "term" : { "word" : "developer" } 
  }
}

如果您只有word类型的text,我建议您将其keyword字段添加为multi-fields,这样您就可以使用{ {1}}用于文本匹配,word用于完全匹配。

word.keyword