Kibana 按别名删除索引

e7arh2l6  于 2022-12-09  发布在  Kibana
关注(0)|答案(3)|浏览(710)

使用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
}

有没有办法按别名删除索引?

0s0u357o

0s0u357o1#

我相信你想实现的事情是不可能的。目前,ElasticSearch DELETE API支持以下功能:
1.您可以删除索引
curl -XDELETE 'http://localhost:9200/{indexname}'
当且仅当{indexname}是具体索引时删除{indexname}。
或2.改为删除别名
curl -XDELETE 'http://localhost:9200/_alias/{aliasname}'
当且仅当{aliasname}是索引别名时删除{aliasname}。

gab6jxml

gab6jxml2#

虽然您无法依别名来删除索引,但您可以改为向Resolve Index API提出要求,以给予别名的名称。它会传回与该别名相关的所有索引,让您可以循环检视并删除它们。
您也可以为它指定索引的名称,它将返回它的任何别名。

oxalkeyp

oxalkeyp3#

您提到的错误指出,您使用语法DELETE whatever_you_put_here删除的内容实际上是一个语法或查询 *,用于删除索引 *,并建议用户,如果他们希望删除indexes,则不能通过删除别名来完成。
例如,当您创建一个别名myalias,并将样本索引myindex与之关联时,在删除索引myindex时,别名myalias也会被删除。
但是,当您创建一个别名并将两个索引 * 与之 * 关联时,您需要 * 删除这两个索引 * 才能删除别名。
Elasticsearch中不存在空的alias,您无法创建它。
请注意,您可以通过执行以下查询来检查别名列表

GET /_alias

现在,如果您只想删除indexalias,可以使用下面的DELETE查询删除它。

DELETE myindex/_alias/myalias

请注意,如果有两个索引引用同一别名,则该别名将继续存在,直到您对这两个索引执行上述DELETE操作。
是否有一种方法可以使用索引的别名来删除索引
至于上面的查询,我认为是不可能的,也说不通。

相关问题