查询集群中所有悬空索引(Dangling Indices)的列表。
API 格式 #
GET /_dangling
API 作用 #
该 API 用于查询集群中所有悬空索引。悬空索引是指在磁盘上存在但未在集群状态中注册的索引。这种情况通常发生在:
- 索引已从集群状态中删除,但数据文件仍存在于磁盘上
- 集群元数据丢失,但索引文件仍然保留
- 索引被手动从磁盘删除,但集群状态仍然引用它
API 参数 #
查询参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
timeout | Time | 否 | 请求超时 | 操作超时时间 |
master_timeout | Time | 否 | 主节点超时 | 等待主节点响应的超时时间 |
通用参数 #
该 API 继承了基础 REST 处理器的通用参数。
请求示例 #
查询所有悬空索引 #
GET /_dangling
设置超时时间 #
GET /_dangling?timeout=30s
响应示例 #
成功响应 #
{
"dangling_indices": [
{
"index_name": "my-index",
"index_uuid": "abc123-def456-ghi789-jkl012",
"creation_date_millis": 1640995200000,
"node_ids": ["node-1", "node-2"]
},
{
"index_name": "old-index",
"index_uuid": "xyz789-abc123-def456-ghi012",
"creation_date_millis": 1640908800000,
"node_ids": ["node-3"]
}
]
}
错误响应(节点失败) #
{
"status": 500,
"_nodes": {
"total": 3,
"successful": 2,
"failed": 1
},
"_nodes.failures": [
{
"node_id": "node-3",
"reason": "..."
}
]
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
dangling_indices | Array | 悬空索引数组 |
dangling_indices[].index_name | String | 悬空索引的名称 |
dangling_indices[].index_uuid | String | 悬空索引的 UUID |
dangling_indices[].creation_date_millis | Long | 索引创建时间戳(毫秒) |
dangling_indices[].node_ids | String[] | 包含该悬空索引的节点 ID 列表 |
处理流程 #
- API 查询集群中的每个节点
- 聚合所有节点的响应
- 返回完整的悬空索引列表
相关操作 #
- POST /_dangling/{index_uuid}:导入悬空索引
- DELETE /_dangling/{index_uuid}:删除悬空索引
使用场景 #
- 集群故障恢复:在元数据丢失后查找可恢复的索引
- 数据清理:识别并清理不需要的悬空索引
- 状态检查:验证集群中的索引一致性
注意事项 #
- 只读操作:该 API 仅查询悬空索引,不修改任何数据
- 集群查询:会查询所有节点并聚合结果
- UUID 识别:每个悬空索引通过 UUID 唯一标识
- 节点分布:同一个索引可能在多个节点上存在副本





