创建或更新索引别名API-《elasticsearch中文文档帮助手册教程V7.11》

admin 2025-11-04 00:12:34 数据库 来源:ZONE.CI 全球网 0 阅读模式
  • 创建或更新索引别名 API
    • 请求
    • 前置条件
    • 路径参数
    • 查询参数
    • 请求体
    • 示例
      • 添加一个基于时间的别名
      • 添加一个基于用户的别名
      • 在索引创建时添加一个别名

    创建或更新索引别名 API

    创建或更新索引别名。

    索引别名是一个或多个索引的第二个名字。大多数 Elasticsearch API 都支持索引别名代替索引名称。

    1. PUT /my-index-000001/_alias/alias1

    请求

    PUT /<index>/_alias/<alias>

    POST /<index>/_alias/<alias>

    PUT /<index>/_aliases/<alias>

    POST /<index>/_aliases/<alias>

    前置条件

    • 如果 Elasticsearch 安全特性启用,你对所有索引和索引别名必须有 manage 索引权限。

    路径参数

    • <index>

    (必需的,字符串)待添加别名的,逗号分隔列表或通配符的索引名。

    为了向集群中的所有索引添加别名,使用值 _all

    ?> 你不能给数据流添加索引别名。

    • <alias>

    (必需的,字符串)待创建或升级的索引别名的名字。支持日期数学。

    查询参数

    • master_timeout

    (可选,时间单位)等待连接到主节点的时间。如果在超时过期前没有收到响应,则请求失败并返回错误。默认为 30s

    • timeout

    (可选,时间单位)等待响应的时间。如果在超时过期之前没有收到响应,则请求失败并返回错误。默认为 30s

    请求体

    • filter

    (可选,查询对象)过滤器查询用于限制索引别名。 如果指定,索引别名仅用于过滤器返回的文档。

    • routing

    (可选,字符串)用于路由操作到指定分片的自定义值。

    示例

    索引别名支持日期数学。

    添加一个基于时间的别名

    以下的请求为索引 logs_20302801 创建一个别名 2030

    1. PUT /logs_20302801/_alias/2030

    添加一个基于用户的别名

    首先,创建一个带有 user_id 字段映射的索引 users

    1. PUT /users
    2. {
    3. "mappings" : {
    4. "properties" : {
    5. "user_id" : {"type" : "integer"}
    6. }
    7. }
    8. }

    接着,为特定用户 user_12 添加索引别名:

    1. PUT /users/_alias/user_12
    2. {
    3. "routing" : "12",
    4. "filter" : {
    5. "term" : {
    6. "user_id" : 12
    7. }
    8. }
    9. }

    在索引创建时添加一个别名

    你可以使用创建索引 API在索引创建时添加一个索引别名。

    1. PUT /logs_20302801
    2. {
    3. "mappings": {
    4. "properties": {
    5. "year": { "type": "integer" }
    6. }
    7. },
    8. "aliases": {
    9. "current_day": {},
    10. "2030": {
    11. "filter": {
    12. "term": { "year": 2030 }
    13. }
    14. }
    15. }
    16. }

    创建索引 API 在索引别名的名字中也支持日期数学。

    原文链接

    评论:0   参与:  10