Scroll API

编辑

我们不再建议使用 scroll API 进行深度分页。 如果您需要在分页浏览超过 10,000 个命中时保留索引状态,请将 search_after 参数与时间点 (PIT) 一起使用。

检索滚动搜索的下一批结果。

resp = client.scroll(
    scroll_id="DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
)
print(resp)
const response = await client.scroll({
  scroll_id: "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
});
console.log(response);
GET /_search/scroll
{
  "scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}

请求

编辑

GET /_search/scroll/<scroll_id> [7.0.0] 在 7.0.0 中已弃用。

GET /_search/scroll

POST /_search/scroll/<scroll_id> [7.0.0] 在 7.0.0 中已弃用。

POST /_search/scroll

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须具有目标数据流、索引或别名的 read 索引权限

描述

编辑

您可以使用 scroll API 从单个滚动搜索请求中检索大量结果集。

scroll API 需要一个 scroll ID。 要获取 scroll ID,请提交一个搜索 API 请求,其中包含 scroll 查询参数的参数。scroll 参数指示 Elasticsearch 应为请求保留 搜索上下文的时间。

搜索响应会在 _scroll_id 响应主体参数中返回一个 scroll ID。 然后,您可以使用 scroll API 和 scroll ID 来检索请求的下一批结果。 如果启用了 Elasticsearch 安全功能,则对特定 scroll ID 结果的访问权限仅限于提交搜索的用户或 API 密钥

您还可以使用 scroll API 指定新的 scroll 参数,以延长或缩短搜索上下文的保留期限。

请参阅滚动搜索结果

滚动搜索的结果反映初始搜索请求时索引的状态。 后续的索引或文档更改只会影响以后的搜索和滚动请求。

路径参数

编辑
<scroll_id>

[7.0.0] 在 7.0.0 中已弃用。 (可选,字符串)搜索的 Scroll ID。

Scroll ID 可能很长。 我们建议仅使用 scroll_id 请求主体参数指定 scroll ID。

查询参数

编辑
scroll

(可选,时间值)保持滚动搜索上下文的时间。 请参阅滚动搜索结果

此值会覆盖原始搜索 API 请求的 scroll 参数设置的持续时间。

默认情况下,此值不能超过 1d (24 小时)。 您可以使用 search.max_keep_alive 集群级设置更改此限制。

您还可以使用 scroll 请求主体参数指定此值。 如果同时指定了这两个参数,则仅使用查询参数。

scroll_id

[7.0.0] 在 7.0.0 中已弃用。 (可选,字符串)搜索的 Scroll ID。

Scroll ID 可能很长。 我们建议仅使用 scroll_id 请求主体参数指定 scroll ID。

rest_total_hits_as_int
(可选,布尔值)如果为 true,则 API 响应的 hit.total 属性将作为整数返回。 如果为 false,则 API 响应的 hit.total 属性将作为对象返回。 默认为 false

请求主体

编辑
scroll

(可选,时间值)保持滚动搜索上下文的时间。 请参阅滚动搜索结果

此值会覆盖原始搜索 API 请求的 scroll 参数设置的持续时间。

默认情况下,此值不能超过 1d (24 小时)。 您可以使用 search.max_keep_alive 集群级设置更改此限制。

您还可以使用 scroll 查询参数指定此值。 如果同时指定了这两个参数,则仅使用查询参数。

scroll_id
(必需,字符串)搜索的 Scroll ID。

响应主体

编辑

scroll API 返回与搜索 API 相同的响应主体。 请参阅搜索 API 的响应主体参数