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

问题描述 投票:0回答:1

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

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

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

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

elasticsearch search boolean logic fuzzy
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.