原文地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/proximity-matching.html, 版权归 www.elastic.co 所有
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/proximity-matching.html
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/proximity-matching.html
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
近似匹配edit
使用 TF/IDF 的标准全文检索将文档或者文档中的字段作一大袋的词语处理。 match
查询可以告知我们这大袋子中是否包含查询的词条,但却无法告知词语之间的关系。
思考下面这几个句子的不同:
- Sue ate the alligator.
- The alligator ate Sue.
- Sue never goes anywhere without her alligator-skin purse.
用 match
搜索 sue alligator
上面的三个文档都会得到匹配,但它却不能确定这两个词是否只来自于一种语境,甚至都不能确定是否来自于同一个段落。
理解分词之间的关系是一个复杂的难题,我们也无法通过换一种查询方式去解决。但我们至少可以通过出现在彼此附近或者仅仅是彼此相邻的分词来判断一些似乎相关的分词。
每个文档可能都比我们上面这个例子要长: Sue
和 alligator
这两个词可能会分散在其他的段落文字中,我们可能会希望得到尽可能包含这两个词的文档,但我们也同样需要这些文档与分词有很高的相关度。
这就是短语匹配或者近似匹配的所属领域。
在这一章节,我们还是使用在match
查询中使用过的文档作为例子。