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

检索索引别名信息,返回别名与索引的映射关系及别名配置。

API #

GET /_aliases
GET /{index}/_alias
GET /{index}/_alias/{name}
HEAD /_aliases
HEAD /{index}/_alias
HEAD /{index}/_alias/{name}
GET /_alias/{name}
HEAD /_alias/{name}
GET /_alias/*
HEAD /_alias/*

API 的作用 #

该 API 用于查询索引别名信息,可以获取所有别名、特定索引的别名或特定别名的详细信息。

功能特点 #

功能描述
全部别名获取集群中所有别名信息
按索引过滤获取特定索引的别名
按别名过滤获取特定别名指向的索引
别名配置返回过滤、路由等配置信息

vs GET /_cat/aliases #

API返回格式用途
GET /_aliasesJSON 格式程序化处理
GET /_cat/aliases表格格式人工查看

API 的参数 #

路由参数 #

参数类型是否必填描述
{index}字符串索引名称,支持通配符
{name}字符串别名名称,支持通配符

Query String 参数 #

参数类型是否必填默认值描述
index列表全部过滤的索引名称
name列表全部过滤的别名名称
local布尔值false是否只返回本地信息
ignore_unavailable布尔值false是否忽略不可用的索引
allow_no_indices布尔值false是否允许通配符不匹配任何索引
expand_wildcards枚举值open通配符展开方式:openclosedallnone

示例 #

获取所有别名 #

GET /_aliases

响应示例:

{
  "logs-2024-01": {
    "aliases": {
      "logs": {
        "is_write_index": true
      },
      "errors": {
        "filter": {
          "term": {
            "level": "ERROR"
          }
        }
      }
    }
  },
  "logs-2024-02": {
    "aliases": {
      "logs": {
        "is_write_index": false
      }
    }
  }
}

获取特定索引的别名 #

GET /my_index/_alias/*

获取特定别名的信息 #

GET /_alias/my_alias

响应示例:

{
  "index1": {
    "aliases": {
      "my_alias": {
        "is_write_index": true
      }
    }
  },
  "index2": {
    "aliases": {
      "my_alias": {
        "is_write_index": false
      }
    }
  }
}

使用通配符 #

GET /logs-*/_alias/*

按别名名称过滤 #

GET /_alias/logs*

获取多个索引的别名 #

GET /index1,index2/_alias/*

带过滤器的别名信息 #

GET /logs/_alias/error_logs

响应示例:

{
  "logs": {
    "aliases": {
      "error_logs": {
        "filter": {
          "term": {
            "level": "ERROR"
          }
        }
      }
    }
  }
}

使用索引参数过滤 #

GET /_aliases?index=logs-*

使用别名参数过滤 #

GET /_aliases?name=logs_current,logs_archive

只返回本地信息 #

GET /_aliases?local=true

包含关闭的索引 #

GET /_aliases?expand_wildcards=all

检查别名是否存在(HEAD) #

HEAD /_alias/my_alias

返回:

  • 200 OK - 别名存在
  • 404 Not Found - 别名不存在

检查索引是否有别名 #

HEAD /my_index/_alias/*

响应字段说明 #

字段描述
{index}索引名称作为键
aliases别名对象
filter过滤查询(如果有)
index_routing索引路由值
search_routing搜索路由值
is_write_index是否为写入索引

使用场景 #

场景 1:检查别名配置 #

GET /_alias/my_alias

场景 2:验证别名切换 #

# 检查当前别名指向
GET /products/_alias/products

场景 3:审计别名配置 #

GET /_aliases?local=true

场景 4:查找带过滤器的别名 #

GET /_alias/*_filter

场景 5:检查写入索引 #

GET /_alias/logs_write

注意事项 #

  1. HEAD 请求:用于检查存在性,不返回具体内容
  2. 通配符支持* 匹配任意字符
  3. 性能考虑:大量别名时可能返回较大响应
  4. 本地信息:local=true 可能与集群状态不同步
  5. 关闭索引:默认不包含,需设置 expand_wildcards=all

常见错误 #

别名不存在 #

GET /_alias/nonexistent

响应:

{
  "error": {
    "type": "index_not_found_exception",
    "reason": "no such alias [nonexistent]"
  }
}

索引不存在 #

GET /nonexistent_index/_alias/*

响应:

{
  "error": {
    "type": "index_not_found_exception",
    "reason": "no such index [nonexistent_index]"
  }
}