按别名删除索引

时间:2018-10-18 13:44:41

标签: elasticsearch kibana

使用Elasticsearch,我可以删除索引名称:

DELETE my_index
{}

但是我不能通过别名删除它:

DELETE my_index_alias
{}

错误是:

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "The provided expression [my_index_alias] matches an alias, specify the corresponding concrete indices instead."
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "The provided expression [my_index_alias] matches an alias, specify the corresponding concrete indices instead."
  },
  "status": 400
}

是否可以通过别名删除索引?

2 个答案:

答案 0 :(得分:1)

我相信您要实现的目标是不可能的。当前,ElasticSearch DELETE API支持以下内容:

  1. 您可以删除索引

curl -XDELETE 'http://localhost:9200/{indexname}'

仅当{indexname}是具体索引时,才删除{indexname}。

或2.改为删除别名

curl -XDELETE 'http://localhost:9200/_alias/{aliasname}'

仅当{aliasname}是索引别名时,才删除{aliasname}。

答案 1 :(得分:0)

您提到的错误是您使用语法DELETE whatever_you_put_here删除的内容实际上是语法或查询删除索引,并建议用户是否要删除{{1 }},则无法通过删除别名来完成。

创建别名时,例如说indexes,并将其与样本索引myalias关联,删除索引myindex后,别名myindex也将被删除。

但是,当您创建别名并关联两个索引时,您需要删除两个索引才能删除别名。

myalias中不存在空的alias,因此无法创建它。

请注意,您可以通过执行以下查询来检查别名列表

Elasticsearch

现在,如果您只想删除GET /_alias 中的alias,则可以使用下面的index查询将其删除。

DELETE

请注意,如果您有两个索引引用相同的别名,则别名将继续存在,直到您对两个索引执行上述DELETE myindex/_alias/myalias 操作为止。

  

是否可以使用其别名删除索引

对于上述查询,我​​认为这是不可能的,而且这也没有道理。