目录
Initialize the search scroll context
背景:因为在开发过程中有个拉取数据的需求,数据都存在es中,刚开始用了分页查询,但是超过10000数据量之后报错。所以需要学习滚轮查询来解决该问题。
ES官方不再建议使用ScrollAPI进行深度分页。如果在分页超过10000次点击时需要保留索引状态,请使用带有时间点(PIT)的search_after参数。
检索滚动搜索的下一批结果。
GET /_search/scroll
{
"scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}
Request
GET /_search/scroll/<scroll_id>
Deprecated in 7.0.0.
GET /_search/scroll
POST /_search/scroll/<scroll_id>
Deprecated in 7.0.0.
POST /_search/scroll
先决条件
如果启用了Elasticsearch安全功能,则必须对目标数据流、索引或别名具有读取索引权限。
描述
我们可以使用scroll api从单个滚动搜索请求中检索大量结果。
scroll API需要滚动ID。若要获取滚动ID,请提交包含滚动查询参数参数的搜索API请求。scroll参数指示Elasticsearch应该为请求保留搜索上下文多长时间。
搜索响应在_scroll_id response body参数中返回一个scroll ID。然后,我们可以使用scroll ID和scroll API来检索请求的下一批结果。如果启用了Elasticsearch安全功能,则对特定滚动ID的结果的访问将仅限于提交搜索的用户或API密钥。
还可以使用scroll API指定新的scroll参数,以延长或缩短搜索上下文的保留期。
请参阅滚动搜索结果。
滚动搜索的结果反映了初始搜索请求时索引的状态。随后的索引或文档更改只会影响以后的搜索和滚动请求。
路径参数
<scroll_id>
在7.0.0中已弃用。(可选,字符串)搜索的滚动ID。
滚动ID可以很长。我们建议只使用scroll_id request body参数指定scroll id。
查询参数
scroll
(可选,时间值)保留滚动搜索上下文的时间段。
此值覆盖由原始搜索API请求的scroll参数设置的持续时间。
默认情况下,此值不能超过1d(24小时)。我们可以使用search.max_keep_alive集群级别设置更改此限制。
也可以使用scroll request body参数指定此值。如果同时指定了这两个参数,则只使用查询参数。
scroll_id
在7.0.0中已弃用。(可选,字符串)用于搜索的滚动ID。
rest_total_hits_as_int
(可选,布尔值)如果为true,则API响应的hit.total属性将作为整数返回。如果为false,则API响应的hit.total属性将作为对象返回。默认为false。