--- title: "查询悬空索引" date: 2026-02-13 lastmod: 2026-02-13 description: "查询集群中的悬空索引" tags: ["索引", "集群", "故障恢复"] summary: "查询集群中所有悬空索引(Dangling Indices)的列表。 API 格式 # GET /_dangling API 作用 # 该 API 用于查询集群中所有悬空索引。悬空索引是指在磁盘上存在但未在集群状态中注册的索引。这种情况通常发生在: 索引已从集群状态中删除,但数据文件仍存在于磁盘上 集群元数据丢失,但索引文件仍然保留 索引被手动从磁盘删除,但集群状态仍然引用它 API 参数 # 查询参数 # 参数 类型 是否必填 默认值 描述 timeout Time 否 请求超时 操作超时时间 master_timeout Time 否 主节点超时 等待主节点响应的超时时间 通用参数 # 该 API 继承了基础 REST 处理器的通用参数。 请求示例 # 查询所有悬空索引 # GET /_dangling 设置超时时间 # GET /_dangling?" --- 查询集群中所有悬空索引(Dangling Indices)的列表。 ## API 格式 ``` GET /_dangling ``` ## API 作用 该 API 用于查询集群中所有悬空索引。**悬空索引**是指在磁盘上存在但未在集群状态中注册的索引。这种情况通常发生在: - 索引已从集群状态中删除,但数据文件仍存在于磁盘上 - 集群元数据丢失,但索引文件仍然保留 - 索引被手动从磁盘删除,但集群状态仍然引用它 ## API 参数 ### 查询参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `timeout` | Time | 否 | 请求超时 | 操作超时时间 | | `master_timeout` | Time | 否 | 主节点超时 | 等待主节点响应的超时时间 | ### 通用参数 该 API 继承了基础 REST 处理器的通用参数。 ## 请求示例 ### 查询所有悬空索引 ``` GET /_dangling ``` ### 设置超时时间 ``` GET /_dangling?timeout=30s ``` ## 响应示例 ### 成功响应 ```json { "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"] } ] } ``` ### 错误响应(节点失败) ```json { "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 列表 | ## 处理流程 1. API 查询集群中的每个节点 2. 聚合所有节点的响应 3. 返回完整的悬空索引列表 ## 相关操作 - **POST /_dangling/{index_uuid}**:导入悬空索引 - **DELETE /_dangling/{index_uuid}**:删除悬空索引 ## 使用场景 1. **集群故障恢复**:在元数据丢失后查找可恢复的索引 2. **数据清理**:识别并清理不需要的悬空索引 3. **状态检查**:验证集群中的索引一致性 ## 注意事项 1. **只读操作**:该 API 仅查询悬空索引,不修改任何数据 2. **集群查询**:会查询所有节点并聚合结果 3. **UUID 识别**:每个悬空索引通过 UUID 唯一标识 4. **节点分布**:同一个索引可能在多个节点上存在副本