Elasticsearch的布尔搜索模糊查询 - 意外结果 - “Word1”和“Word2”~3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch的布尔搜索模糊查询 - 意外结果 - “Word1”和“Word2”~3相关的知识,希望对你有一定的参考价值。

我在Elasticsearch应用程序中使用搜索字符串'“Word1”和“Word2”~3',但得到的结果是我没想到的。

它返回了诸如“Word1 blah blah Word1”之类的结果。我实际上只希望它返回“Word1 blah blah Word2”的结果,但不会重复出现“Word1”。

在实验中似乎'“Word1 Word2”~3'给出了我正在寻找的实际结果。

是否有人能够帮助我理解这种逻辑,以及为什么第一次搜索不能按预期工作,以及是否有更好的方法来处理我正在做的事情?

答案

在您的第一个查询"Word1" AND "Word2" ~3中,模糊仅适用于Word2。查询读取基本上如下:查找包含编辑距离为3的“Word1”和“Word2”的所有文档。因此,具有Word1 blah blah Word1的文档将符合条件,因为第一次出现的“Word1”匹配,第二次出现也是因为它具有用“Word 2”编辑1的距离

在你的第二个查询"Word1 Word2" ~3中,你正在做一个proximity search,即它是一个短语查询,你允许“Word1”和“Word2”彼此进一步分开。

以上是关于Elasticsearch的布尔搜索模糊查询 - 意外结果 - “Word1”和“Word2”~3的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch 学习+SpringBoot实战教程

Elasticsearch系列(13)Query之全文查询

Elasticsearch 过滤布尔查询

elasticsearch 忽略大小写模糊搜索实现

Elasticsearch语法知多少之Match query

Elasticsearch系列---前缀搜索和模糊搜索