别名

297 阅读1分钟

1. 使用别名的好处

  • 在未来重建索引时,别名赋予了更多的灵活性。只需要修改别名指向额外新创建的索引。
  • 滑动窗口类数据查询,比如:昨日数据,让yesterday别名始终指向昨天的索引。

2. 管理别名

使用专用的别名API端点和一系列操作来创建别名。每个操作是一个添加或删除的映射,外加这个操作所针对的索引和别名。

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "date-20210629",
        "alias": "yesterday"
      }
    },
    {
       "remove": {
        "index": "date-20210628", 
        "alias": "yesterday"
      }
    }
  ]
}

使用http方法操作别名

/{index}/_alias/{alias}

index: 可以是多个索引或使用通配符

#创建别名
PUT /date-20210629,date-20210628/_alias/last_two_day

#查询某个索引全部别名
GET /date-20210629/_alias
# 返回
{
  "date-20210629" : {
    "aliases" : {
      "last_two_day" : { },
      "yesterday" : { }
    }
  }
}

#查询某个索引指定别名
GET /date-20210629/_alias/last_two_day

#查询全部索引的指定别名
GET /_alias/last_two_day

#删除别名
DELETE /date-20210628/_alias/last_two_day

3. 使用别名过滤器

别名还有一些其它特征,可以对正在执行的查询自动实现过滤

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "get-together",
        "alias": "es-groups",
        "filter": {
          "term": {
            "relationship_type": "group"
          }
        }
      }
    }
  ]
}

GET /es-groups/_search