求助:这个需求 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 能实现吗?的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 Redshift 传输到 Elastic Search?

Elastic Search 基础——分析(Analysis)

elastic search报错——“failed to obtain node locks”

4个最难的 Elastic Search 面试题

将包含 LONGTEXT 字段的 MySQL 表索引到 Elastic Search

Elastic Search 和 Y10k(超过 4 位数的年份)