Elasticsearch短语搜索——match_phrase

Posted 穷开心y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch短语搜索——match_phrase相关的知识,希望对你有一定的参考价值。

  找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者短语 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock”  “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着的雇员记录。

  为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询:

curl -XGET localhost:9200/megacorp/employee/_search?pretty -H Content-Type: application/json -d{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    }
}

毫无悬念,返回结果仅有 John Smith 的文档。

{
   ...
   "hits": {
      "total":      1,
      "max_score":  0.23013961,
      "hits": [
         {
            ...
            "_score":         0.23013961,
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         }
      ]
   }
}

以上是关于Elasticsearch短语搜索——match_phrase的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch系列---近似匹配

ElasticSearch查询 第四篇:匹配查询(Match)

[Elasticsearch] 邻近匹配 - 短语匹配以及slop参数

es7.x(7)—短语搜索(match_phrase)

关于Elasticsearch 使用 MatchPhrase搜索的一些坑

Elasticsearch匹配短语前缀不匹配所有术语