ES returns 默认只有10条记录。如何在不使用滚动的情况下获取所有记录 API

ES returns only 10 records by default. How to get all records without using scroll API

当我们向 ES 查询记录时,它 returns 默认有 10 条记录。如何在不使用任何滚动条的情况下获取同一查询中的所有记录 API.

有一个指定尺寸的选项,但尺寸是事先不知道的。

您可以在一个请求中检索最多 10k 个结果(设置 "size": 10000)。如果您的匹配文档少于 10k,那么您可以使用 from/size parameters 的组合对它们进行分页。如果更多,那么你将不得不使用其他方法:

Note that from + size can not be more than the index.max_result_window index setting which defaults to 10,000. See the Scroll or Search After API for more efficient ways to do deep scrolling.

为了能够对未知数量的文档进行分页,您必须从第一个返回的查询中获取总数。

请注意,如果数据同时发生变化,分页检索的结果可能会不一致(例如,如果在分页时插入或删除了一个文档)。滚动是一致的,因为它是从查询开始时创建的索引的“快照”创建的。