收听最近添加的与给定查询匹配的文档

时间:2013-11-18 10:49:08

标签: elasticsearch

我需要收听添加到Elasticsearch索引的文档子集。子集由Elasticsearch查询定义。我可以容忍索引操作和监听回调之间的10秒延迟。

显然,我可以通过每10秒向服务器发送一次搜索请求来做到这一点。但在整个索引中搜索最近的文档似乎是多余的。我可以存储我提取的最后一个文档的id,并使用它来进一步缩小搜索范围,如果没有更简单的方法,我会这样做。

但是,我想,可能会有一个插件会捕获任何新插入的文档,尝试将查询与文档匹配,如果匹配成功则将其推送给我的侦听器。这样的插件是否存在?这至少是可能的吗?

2 个答案:

答案 0 :(得分:1)

您可以查看Percolator功能,该功能可以执行您所描述的功能。此外,即将发布的1.0版本也有重大变化,请参阅:Master Documentation

修改:从Elasticsearch 5.0开始,Percolator has been deprecated替换为percolator query

答案 1 :(得分:0)

延迟取决于您需要匹配的查询数量。最近,我在1.0测试版中测试了渗透功能。通过100个注册查询渗透一个文档,小于10毫秒,1000个,大于15毫秒,10000个以上100毫秒,似乎延迟随着数量的增加线性增加 注册查询。很坏。在阅读了beta 1.0 percolate文档的“如何在钩子下工作”一节后,我确认“渗透”是以线性方式完成的。