检索索引别名信息,返回别名与索引的映射关系及别名配置。
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 /_aliases | JSON 格式 | 程序化处理 |
GET /_cat/aliases | 表格格式 | 人工查看 |
API 的参数 #
路由参数 #
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
{index} | 字符串 | 否 | 索引名称,支持通配符 |
{name} | 字符串 | 否 | 别名名称,支持通配符 |
Query String 参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
index | 列表 | 否 | 全部 | 过滤的索引名称 |
name | 列表 | 否 | 全部 | 过滤的别名名称 |
local | 布尔值 | 否 | false | 是否只返回本地信息 |
ignore_unavailable | 布尔值 | 否 | false | 是否忽略不可用的索引 |
allow_no_indices | 布尔值 | 否 | false | 是否允许通配符不匹配任何索引 |
expand_wildcards | 枚举值 | 否 | open | 通配符展开方式:open、closed、all、none |
示例 #
获取所有别名 #
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
注意事项 #
- HEAD 请求:用于检查存在性,不返回具体内容
- 通配符支持:
*匹配任意字符 - 性能考虑:大量别名时可能返回较大响应
- 本地信息:local=true 可能与集群状态不同步
- 关闭索引:默认不包含,需设置 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]"
}
}





