集群搜索 API编辑

集群搜索 API 的目的是提供一个搜索 API,该 API 仅在提供的检查点已处理并在 Elasticsearch 中对搜索可见后才执行搜索。

集群搜索 API 旨在通过集群服务器间接使用。不支持直接使用。Elastic 保留将来在不事先通知的情况下更改或删除此功能的权利。

等待检查点功能编辑

集群搜索 API 支持可选参数 wait_for_checkpoints。此参数是序列号检查点的列表。如果存在此参数,则仅在所有操作(包括提供的序列号检查点)对搜索可见后,才会在本地分片上执行搜索。索引操作在刷新后可见。检查点由分片索引。

如果在检查点刷新到 Elasticsearch 之前发生超时,则搜索请求将超时。

集群搜索 API 仅支持针对单个目标的搜索。如果提供索引别名作为搜索目标,则它必须解析为单个具体索引。

允许部分结果编辑

默认情况下,Elasticsearch 搜索 API 将允许 部分搜索结果。使用此集群 API,通常将其配置为 false 或在响应中进行检查以确保每个分片搜索都成功。如果不采取这些预防措施,则即使一个或多个分片超时,也可能会成功返回搜索结果。

请求编辑

GET /<target>/_fleet/_fleet_search

路径参数编辑

<target>
(必填,字符串)要搜索的单个目标。如果目标是索引别名,则它必须解析为单个索引。

查询参数编辑

wait_for_checkpoints
(可选,列表)以逗号分隔的检查点列表。配置后,仅在相关检查点对搜索可见后,才会在分片上执行搜索 API。默认为空列表,这将导致 Elasticsearch 立即执行搜索。
allow_partial_search_results
(可选,布尔值)如果为 true,则在出现分片请求超时或 分片故障 时返回部分结果。如果为 false,则返回错误,不返回部分结果。默认为已配置的集群设置 search.default_allow_partial_results,默认情况下为 true