我在Elasticsearch应用程序中使用搜索字符串'“Word1”和“Word2”〜3“,但得到的结果出乎意料。
它正在返回诸如“Word1 blah blah Word1”之类的结果。实际上,我只希望它返回“Word1等等”的结果,而不希望重复出现“Word1”。
在实验中,似乎““Word1 Word2”〜3“给出了我想要的实际结果。
有人能够帮助我理解这种逻辑吗?为什么第一次搜索无法按预期进行,以及是否有更好的方法来进行我的工作?
最佳答案
在您的第一个查询"Word1" AND "Word2" ~3
中,模糊性仅应用于Word2
。该查询基本上是这样的:查找所有包含“Word1”和“Word2”且编辑距离为3的文档。因此,带有Word1 blah blah Word1
的文档将是合格的,因为第一次匹配的是“Word1”,而第二次匹配也是因为它具有一个用“单词2”编辑1的距离
在第二个查询"Word1 Word2" ~3
中,您正在执行proximity search,即这是一个短语查询,其中您允许“Word1”和“Word2”彼此分开。
关于elasticsearch - 用于Elasticsearch的 boolean 搜索模糊查询-意外结果- “Word1”和 “Word2”〜3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47984581/