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

时间:2017-12-26 22:59:14

标签: elasticsearch search boolean logic fuzzy

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

在您的第二个查询"Word1 Word2" ~3中,您正在执行proximity search,即它是一个短语查询,您可以在其中允许“Word1”和“Word2”彼此远离。< / p>