使用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
}
是否可以通过别名删除索引?
答案 0 :(得分:1)
我相信您要实现的目标是不可能的。当前,ElasticSearch DELETE API支持以下内容:
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
操作为止。
是否可以使用其别名删除索引
对于上述查询,我认为这是不可能的,而且这也没有道理。