【发布时间】:2018-07-04 14:53:01
【问题描述】:
我想随机跳转到 elasticsearch 的结果页面。 elasticsearch中分页的三种方式:
- from/size - 由于最大深度限制为 10000,我无法使用它。
- scroll API - 我可以使用它,但它有与之相关的内存使用成本(保持搜索上下文活动)。
- search_after - 我也可以使用它,即使它比卷轴便宜,因为它是无状态的。
我知道无论如何,Elasticsearch 都会顺序读取数据。假设我想获得第 99 页,那么 elastic 将读取所有 98 个结果以获得第 99 个结果。
我可以做一件事,即减少我将在目标数据之前依次获取的数据,在这种情况下,我将减少 98 页返回的数据,而对于第 99 页,我将获得完整的数据。
我的主要问题是“如果我没有内存问题怎么办,那么哪种方法可以更快地顺序获取 98 页?” (搜索后或滚动)
如果我使用卷轴,我会在每次使用后清除它。
【问题讨论】: