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

时间:2018-01-16 12:10:12

标签: elasticsearch elasticsearch-query

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

可以选择指定尺寸,但事先不知道尺寸。

1 个答案:

答案 0 :(得分:4)

您可以在一个请求中检索最多10k个结果(设置"size": 10000)。如果您有超过10k个匹配的文档,那么您可以使用from/size parameters的组合对它们进行分页。

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

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

希望有所帮助!