【问题标题】:ElasticSearch: is there a way to get new documents inserted in all indexes after a previous SearchRequest?ElasticSearch:有没有办法在之前的 SearchRequest 之后将新文档插入到所有索引中?
【发布时间】:2014-08-08 11:09:08
【问题描述】:

我有多个 ElasticSearch 索引分片到多台机器上,我使用 logstash 将日志摄取到这些机器中。我通过 REST API 公开数据。 API 层搜索多个术语(使用 ElasticSearch Java API)并将结果呈现给用户。

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

我查看了percolator API,但这似乎并没有达到我想要的效果 - 它似乎为查询列表提供了即将插入的给定文档将匹配。我的要求是:

  1. 同一用户可能希望在几次之后检查新的日志消息 几秒钟或几天。
  2. 多个用户可以搜索相同的字词 但它们将在不同的页面中(我将实现分页 使用 SearchRequestBuilder.setSize API。)因此,不同用户的更改项目将不同,因为它们位于相同输出的不同页面上。

有没有办法以可扩展的方式做到这一点?

【问题讨论】:

标签: java rest elasticsearch observer-pattern


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    这会是你正在寻找的东西吗Elastic Search X-Pack

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 2020-09-06
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      相关资源
      最近更新 更多