求助:这个需求 Elastic Search 能实现吗?

Posted 待字闺中

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:这个需求 Elastic Search 能实现吗?相关的知识,希望对你有一定的参考价值。

最近在用 Elastic Search 做项目,遇到了这样一个需求,本以为 SpanNearQuery 能实现,发现不可以,因为 span_near 中定义的 slop 是两个邻近词之间的距离,而不是整个 query 所在的窗口的大小。


现在抛出这个这个问题求助,有解决方案的欢迎留言,一旦采用必有重谢。


给定 n 个词,要求搜索所有含有这 n 个词的文档,并且满足这 n 个词同时出现在长度为 m 的窗口中,还有就是这 n 个词在文档中出现的次序和搜索时的次序一致。


比如,搜索词是:“明天 北京 上海 火车”,要求文档中匹配的窗口的大小是12个词。


文档1: 大概 明天 有 一辆 从 北京 开往 上海 的 火车 将 提速 10%

            1      2       3   4     5   6      7      8      9   10   11 12    13


这个文档满足条件,2 6 8 10 正好次序和 “明天 北京 上海 火车“一致,并且这几个词的跨度是8,小于要求的12窗口。


文档2: 大概 明天 有 一辆 从 上海 开往 北京 的 火车 将 提速 10%

            1     2       3   4    5     6      7     8      9    10    11 12   13  


这个不满足,因为“上海 北京”的次序不满足。


文档3: 大概 明天 上午 八点 左右 有 一辆 从 上海 开往 北京 的 混合 动力 的 火车 将 提速 10%

           1      2       3     4      5        6   7     8   9      10   11    12  13    14   15 16       17 18    19


这个不满足,2 9 11 16,这几个词的跨度是14,大于要求的12窗口。


说明白了吧,再次提前谢谢。

以上是关于求助:这个需求 Elastic Search 能实现吗?的主要内容,如果未能解决你的问题,请参考以下文章