导入悬挂索引 API

编辑

导入一个悬挂索引。

请求

编辑
resp = client.dangling_indices.import_dangling_index(
    index_uuid="<index-uuid>",
    accept_data_loss=True,
)
print(resp)
const response = await client.danglingIndices.importDanglingIndex({
  index_uuid: "<index-uuid>",
  accept_data_loss: "true",
});
console.log(response);
POST /_dangling/<index-uuid>?accept_data_loss=true

前提条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须具有 manage 集群权限 才能使用此 API。

描述

编辑

如果 Elasticsearch 遇到当前集群状态中不存在的索引数据,则这些索引被认为是悬挂的。例如,如果在 Elasticsearch 节点脱机时删除的索引超过 cluster.indices.tombstones.size 个,则可能发生这种情况。

通过引用其 UUID 将单个索引导入到集群中。使用 列出悬挂索引 API 来查找索引的 UUID。

路径参数

编辑
<index-uuid>
(必需,字符串) 要导入的索引的 UUID,您可以使用 列出悬挂索引 API 找到它。

查询参数

编辑
accept_data_loss
(必需,布尔值) 此字段必须设置为 true 才能导入悬挂索引。因为 Elasticsearch 无法知道悬挂索引数据来自哪里,也无法确定哪些分片副本是新的,哪些是陈旧的,所以它无法保证导入的数据表示索引上次在集群中的最新状态。
master_timeout
(可选,时间单位) 等待主节点的时间。如果主节点在超时过期之前不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 表示请求永远不应超时。
timeout
(可选,时间单位) 在更新集群元数据后,等待来自集群中所有相关节点的响应的时间。如果在超时过期之前没有收到响应,则集群元数据更新仍然适用,但响应将指示它未完全确认。默认为 30s。也可以设置为 -1 表示请求永远不应超时。

示例

编辑

以下示例演示如何导入悬挂索引

resp = client.dangling_indices.import_dangling_index(
    index_uuid="zmM4e0JtBkeUjiHD-MihPQ",
    accept_data_loss=True,
)
print(resp)
const response = await client.danglingIndices.importDanglingIndex({
  index_uuid: "zmM4e0JtBkeUjiHD-MihPQ",
  accept_data_loss: "true",
});
console.log(response);
POST /_dangling/zmM4e0JtBkeUjiHD-MihPQ?accept_data_loss=true

API 返回以下响应

{
  "acknowledged" : true
}