【发布时间】:2014-08-08 11:09:08
【问题描述】:
我有多个 ElasticSearch 索引分片到多台机器上,我使用 logstash 将日志摄取到这些机器中。我通过 REST API 公开数据。 API 层搜索多个术语(使用 ElasticSearch Java API)并将结果呈现给用户。
现在,如果用户正在浏览器中查看结果,则可能会提取新的日志,这些日志与用户正在查看的相同查询和过滤器相匹配。我希望通知 API 层有与查询匹配的新项目。因此,如果我收到相同的 API 请求,我可以只发回新数据(增量)或发送 HTTP 304“未修改”响应。
我查看了percolator API,但这似乎并没有达到我想要的效果 - 它似乎为查询列表提供了即将插入的给定文档将匹配。我的要求是:
- 同一用户可能希望在几次之后检查新的日志消息 几秒钟或几天。
- 多个用户可以搜索相同的字词 但它们将在不同的页面中(我将实现分页 使用 SearchRequestBuilder.setSize API。)因此,不同用户的更改项目将不同,因为它们位于相同输出的不同页面上。
有没有办法以可扩展的方式做到这一点?
【问题讨论】:
-
如果您可以将此作为答案,我将接受它作为答案。
标签: java rest elasticsearch observer-pattern