📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

查询集群中所有悬空索引(Dangling Indices)的列表。

API 格式 #

GET /_dangling

API 作用 #

该 API 用于查询集群中所有悬空索引。悬空索引是指在磁盘上存在但未在集群状态中注册的索引。这种情况通常发生在:

  • 索引已从集群状态中删除,但数据文件仍存在于磁盘上
  • 集群元数据丢失,但索引文件仍然保留
  • 索引被手动从磁盘删除,但集群状态仍然引用它

API 参数 #

查询参数 #

参数类型是否必填默认值描述
timeoutTime请求超时操作超时时间
master_timeoutTime主节点超时等待主节点响应的超时时间

通用参数 #

该 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_indicesArray悬空索引数组
dangling_indices[].index_nameString悬空索引的名称
dangling_indices[].index_uuidString悬空索引的 UUID
dangling_indices[].creation_date_millisLong索引创建时间戳(毫秒)
dangling_indices[].node_idsString[]包含该悬空索引的节点 ID 列表

处理流程 #

  1. API 查询集群中的每个节点
  2. 聚合所有节点的响应
  3. 返回完整的悬空索引列表

相关操作 #

  • POST /_dangling/{index_uuid}:导入悬空索引
  • DELETE /_dangling/{index_uuid}:删除悬空索引

使用场景 #

  1. 集群故障恢复:在元数据丢失后查找可恢复的索引
  2. 数据清理:识别并清理不需要的悬空索引
  3. 状态检查:验证集群中的索引一致性

注意事项 #

  1. 只读操作:该 API 仅查询悬空索引,不修改任何数据
  2. 集群查询:会查询所有节点并聚合结果
  3. UUID 识别:每个悬空索引通过 UUID 唯一标识
  4. 节点分布:同一个索引可能在多个节点上存在副本