问题是通过单词分析以任意顺序对两个相邻单词进行短语搜索。

例如。在Sphinx extended syntax terms中,查询字符串可以写为WordToBeAnalyzed1 NEAR/1 WordToBeAnalyzed2。然后,两个单词都将被分析,搜索引擎会找到“Word1 Word2”或“Word2 Word1”,其中两个单词都可以采用任何形式(例如“狐狸跳”,“跳狐狸”,“狐狸跳”等等) )。

阅读ES文档,我无法在ES查询DSL中表达相同的搜索。

当使用match_phraseslop查询时,我可以使用"WordToBeAnalyzed1 WordToBeAnalyzed2"参数向match same words in reverse order查询短语"slop": 2。但是,它也将匹配“Word1 SlopWord1 Word2”和“Word1 SlopWord1 SlopWord2 Word2”之类的不良变体。

我还尝试将span_near查询与in_order参数一起使用,但是



如果有人可以向我指出解决此问题的方法,我将感到非常高兴。

最佳答案

首先通过对 _analyze API的显式请求运行查询,然后再通过span_near查询运行查询呢?

关于search - elasticsearch:以任意顺序短语短语搜索两个相邻单词(已分析),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25672490/

10-12 17:38