您需要删除 Elasticsearch 别名吗?

wxk*_*vin 6 elasticsearch

似乎无法找到这个问题的简单是或否答案。

当您有一个带有一个或多个别名的索引时,您是否可以删除该索引而不会产生任何负面影响?删除索引也会删除别名吗?在删除索引之前是否应该先删除所有别名?

什么被认为是最佳实践?

Val*_*Val 11

一个简单的测试提供了答案。

首先创建一个索引:

PUT my_index
Run Code Online (Sandbox Code Playgroud)

然后创建一个别名:

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "my_index",
        "alias": "alias1"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

验证别名是否存在:

GET _aliases  # should return the alias named alias1
GET alias1    # should return documents from my_index
Run Code Online (Sandbox Code Playgroud)

删除索引:

DELETE my_index
Run Code Online (Sandbox Code Playgroud)

检查别名是否也消失了

GET _aliases  # should be empty
GET alias1    # should return "no such index"
Run Code Online (Sandbox Code Playgroud)

总而言之,您不需要在删除索引之前/之后删除别名。简单地删除索引也会删除孤儿别名。