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实战教程