ElasticSearch:有没有办法在之前的SearchRequest之后将所有索引中的新文档插入?

时间:2014-08-08 11:09:08

标签: java rest elasticsearch observer-pattern

我在多台机器上分割了多个ElasticSearch索引,我使用logstash将日志记录到其中。我通过REST API公开数据。 API层搜索多个术语(使用ElasticSearch Java API)并向用户显示结果。

现在,如果用户在浏览器中查看结果,则可能会收到新日志,这些日志与用户正在查看的相同查询和过滤器相匹配。我希望通知API层有新项与查询匹配。因此,如果我得到相同的API请求,我只能发回新数据(delta)或发送HTTP 304“未修改”响应。

我查看了percolator API,但这似乎没有做我想要的 - 它似乎给出了即将插入的给定文档的查询列表。我的要求是这些:

  1. 同一个用户可能想要在几个之后检查新的日志消息 几秒或几天。
  2. 多个用户可能会搜索相同的字词 但他们将在不同的页面(我将实施分页 使用SearchRequestBuilder.setSize API。)因此,不同用户的更改项目会有所不同,因为它们位于同一输出的不同页面上。
  3. 有没有办法以可扩展的方式做到这一点?

2 个答案:

答案 0 :(得分:2)

有流行的" Change API" Elasticsearch问题跟踪器中的proposal,但尚未实现 - 存在一些主要的实现问题,并且它依赖于其他一些任务。

有第三方plugin试图实现此功能,但它看起来没有维护。

我希望我们最终可以在下一个主要的ES版本中使用此功能。

答案 1 :(得分:0)

这会是您正在寻找的类型Elastic Search X-Pack