我有多个ElasticSearch索引在多台机器上分片,我使用logstash将日志记录到其中.我通过REST API公开数据.API层搜索多个术语(使用ElasticSearch Java API)并向用户显示结果.
现在,如果用户在浏览器中查看结果,则可能会收到新日志,这些日志与用户正在查看的相同查询和过滤器相匹配.我希望通知API层有新项与查询匹配.因此,如果我得到相同的API请求,我只能发回新数据(delta)或发送HTTP 304"未修改"响应.
我查看了percolator API,但这似乎没有做我想要的 - 它似乎给出了即将插入的给定文档的查询列表将匹配.我的要求是这些:
相同的用户可能希望在几秒或几天后检查新的日志消息.
多个用户可以搜索相同的条件,但他们会在不同的页面(我将使用SearchRequestBuilder.setSize API实现分页.)因此,更改的项目将针对不同的用户不同,因为它们是在同一输出上的不同页面.
有没有办法以可扩展的方式做到这一点?