本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。 Elasticsearch: 权威指南 » 深入搜索 » 近似匹配 » 越近越好 « 多值字段 使用邻近度提高相关度 »
越近越好编辑
鉴于一个短语查询仅仅排除了不包含确切查询短语的文档, 而 邻近查询 — 一个
slop
大于 0
— 的短语查询将查询词条的邻近度考虑到最终相关度 _score
中。 通过设置一个像 50
或者 100
这样的高 slop
值, 你能够排除单词距离太远的文档, 但是也给予了那些单词临近的的文档更高的分数。
下列对 quick dog
的邻近查询匹配了同时包含 quick
和 dog
的文档, 但是也给了与 quick 和 dog 更加临近的文档更高的分数
:
POST /my_index/my_type/_search { "query": { "match_phrase": { "title": { "query": "quick dog", "slop": 50 } } } }
注意高 slop
值。
{ "hits": [ { "_id": "3", "_score": 0.75, "_source": { "title": "The quick brown fox jumps over the quick dog" } }, { "_id": "2", "_score": 0.28347334, "_source": { "title": "The quick brown fox jumps over the lazy dog" } } ] }
分数较高因为 quick
和 dog
很接近
分数较低因为 quick
和 dog
分开较远
Getting Started Videos
Starting Elasticsearch Introduction to Kibana Logstash Starter Guide官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_closer_is_better.html