使用双引号搜索关键字以获得elasticsearch中的完全匹配

Sid*_*ige 6 elasticsearch

如果用户通过在"鲜花和覆盖"等关键字周围添加引号进行搜索,则应显示完全匹配.

我尝试使用query_string,它几乎可以工作,但对这些结果不满意.

请有人帮帮我.

{
    "query": {
        "query_string": {
           "fields": ["body"], 
           "query": "\"flowers and mulch\""
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*one 5

您应该将短语匹配用于短语的完全匹配:

{
    "query": {
        "match_phrase": {
            "body": "flowers and mulch"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

词组匹配

与match查询是标准全文本搜索的“ go-to”查询一样,match_phrase查询是当您要查找彼此相邻的单词时应使用的查询。

http://www.elasticsearch.org/guide/zh-CN/elasticsearch/guide/current/phrase-matching.html

  • 这对于诸如“一“二三”之类的查询没有帮助,在该查询中,查询的子集应视为短语。 (10认同)
  • @CoreyOgburn 您可以创建一个 `bool` 查询,该查询结合了“二三”的“match_phrase”查询和“一”的“匹配”查询。 (2认同)