目前,我正在研究 Elastic Search 并对数据进行分页。 特别是,数据按 2 个字段排序:
根据给定的页面大小,我可以使用
number of pages
计算 track_total_hit
。
但是,问题是我无法计算 current page
,因为 sort key(date, id)
不包含有关记录索引的任何信息。
我也考虑过使用
from
和size
,但我的数据数量高于10,000条记录。所以不可能使用它们。另外,我不想更改 max_result_window
的默认配置,因为这会影响性能。
您有什么办法可以解决这个问题吗?谢谢!
我查过:
我研究并发现这是一种权衡。
这类似于 SQL 数据库的 offset-pagination 和 keyset-pagination。
抵消策略类似于需要
Scroll API
的scan from the beginning
,并且它知道current page
。
同时,
search after
与 keyset strategy
类似,可以实现 not need to scan from the beginning
,但是 won't know the current page
。
但我建议在您使用分页的情况下使用from和size,因为它将帮助您达到良好的水平,因为没有人每1000行分页1页 如果您使用 search after,如果用户编辑修复您的 URL,您将收到错误,那么您将遇到查询问题