--- title: "获取索引别名" date: 2026-01-04 lastmod: 2026-01-04 description: "获取索引别名信息,支持按索引和别名名称过滤" tags: ["索引管理", "别名", "索引别名"] summary: "检索索引别名信息,返回别名与索引的映射关系及别名配置。 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 响应示例:" --- 检索索引别名信息,返回别名与索引的映射关系及别名配置。 ## 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` | ## 示例 ### 获取所有别名 ```bash GET /_aliases ``` **响应示例:** ```json { "logs-2024-01": { "aliases": { "logs": { "is_write_index": true }, "errors": { "filter": { "term": { "level": "ERROR" } } } } }, "logs-2024-02": { "aliases": { "logs": { "is_write_index": false } } } } ``` ### 获取特定索引的别名 ```bash GET /my_index/_alias/* ``` ### 获取特定别名的信息 ```bash GET /_alias/my_alias ``` **响应示例:** ```json { "index1": { "aliases": { "my_alias": { "is_write_index": true } } }, "index2": { "aliases": { "my_alias": { "is_write_index": false } } } } ``` ### 使用通配符 ```bash GET /logs-*/_alias/* ``` ### 按别名名称过滤 ```bash GET /_alias/logs* ``` ### 获取多个索引的别名 ```bash GET /index1,index2/_alias/* ``` ### 带过滤器的别名信息 ```bash GET /logs/_alias/error_logs ``` **响应示例:** ```json { "logs": { "aliases": { "error_logs": { "filter": { "term": { "level": "ERROR" } } } } } } ``` ### 使用索引参数过滤 ```bash GET /_aliases?index=logs-* ``` ### 使用别名参数过滤 ```bash GET /_aliases?name=logs_current,logs_archive ``` ### 只返回本地信息 ```bash GET /_aliases?local=true ``` ### 包含关闭的索引 ```bash GET /_aliases?expand_wildcards=all ``` ### 检查别名是否存在(HEAD) ```bash HEAD /_alias/my_alias ``` 返回: - `200 OK` - 别名存在 - `404 Not Found` - 别名不存在 ### 检查索引是否有别名 ```bash HEAD /my_index/_alias/* ``` ## 响应字段说明 | 字段 | 描述 | |------|------| | `{index}` | 索引名称作为键 | | `aliases` | 别名对象 | | `filter` | 过滤查询(如果有) | | `index_routing` | 索引路由值 | | `search_routing` | 搜索路由值 | | `is_write_index` | 是否为写入索引 | ## 使用场景 ### 场景 1:检查别名配置 ```bash GET /_alias/my_alias ``` ### 场景 2:验证别名切换 ```bash # 检查当前别名指向 GET /products/_alias/products ``` ### 场景 3:审计别名配置 ```bash GET /_aliases?local=true ``` ### 场景 4:查找带过滤器的别名 ```bash GET /_alias/*_filter ``` ### 场景 5:检查写入索引 ```bash GET /_alias/logs_write ``` ## 注意事项 1. **HEAD 请求**:用于检查存在性,不返回具体内容 2. **通配符支持**:`*` 匹配任意字符 3. **性能考虑**:大量别名时可能返回较大响应 4. **本地信息**:local=true 可能与集群状态不同步 5. **关闭索引**:默认不包含,需设置 expand_wildcards=all ## 常见错误 ### 别名不存在 ```bash GET /_alias/nonexistent ``` **响应:** ```json { "error": { "type": "index_not_found_exception", "reason": "no such alias [nonexistent]" } } ``` ### 索引不存在 ```bash GET /nonexistent_index/_alias/* ``` **响应:** ```json { "error": { "type": "index_not_found_exception", "reason": "no such index [nonexistent_index]" } } ```