Elasticsearch在特定文档ID之后获取匹配的文档

mad*_*ode 6 offset elasticsearch

当我搜索文档时,我拿了前10个并将其提供给视图,如果用户滚动到列表的末尾,则应显示下10个元素。

我知道显示的文档的最后一个文档ID,现在我必须获取下一个10。基本上,我将执行完全相同的搜索,但偏移量为10,但是使用相同的查询进行搜索会更好,将最后检索到的文档的文档ID,并在具有该ID的文档之后检索匹配的文档。

Elasticsearch可以做到吗?

===更新

我想指出更多我的问题,因为目前所描述的似乎还不够清楚。抱歉

案子:

您有一种饲料,饲料会每秒增长。如果用户转到该提要,则将获得最近的10个条目;如果向下滚动,则希望获得下一个10个条目。

由于Feed每秒增长,因此通常的偏移量/限制(elasticsearch中的/大小)无法解决此问题,因此您将显示已显示的条目或全新的条目,具体取决于第一次请求(前10个条目)之间的时间以及下一个条目的请求。

在已经显示的条目之后获取下一个10个元素的请求将为后端提供最后显示的条目的ID。后端知道忽略此特定条目之前的所有条目。

目前,我正在用代码处理这个问题,我从Elasticsearch请求具有所有匹配条目的列表,并对其进行迭代,这样我就可以做我想做的所有事情(毫不奇怪)并提取所需的全部块。

我的问题是:elasticsearch中是否存在针对此问题的内置解决方案。因为按照我的方式解决问题并不是最快的。

rem*_*ens 1

您只需创建查询 DSL 和分页系统即可

{“大小”:10,“来自”:YOUR_OFFSET}