我试图将ElasticSearch 2.3上的别名my_alias
删除为:
curl -XPOST 'http://localhost:9200/_aliases' -d '
{
"actions" : [
{ "remove" : { "index" : "*", "alias" : "my_alias" } }
]
}'
但是,这个别名不可能存在。在这种情况下,我收到错误:
{
"error": {
"reason": "aliases [my_alias] missing",
"resource.id": "my_alias",
"resource.type": "aliases",
"root_cause": [
{
"reason": "aliases [my_alias] missing",
"resource.id": "my_alias",
"resource.type": "aliases",
"type": "aliases_not_found_exception"
}
],
"type": "aliases_not_found_exception"
},
"status": 404
}
我尝试将ignore_unavailable
添加到{ "remove" : { "index" : "*", "alias" : "my_alias", "ignore_unavailable": true } }
的操作中,或简称为ignore: 404
,但无效。我在https://github.com/elastic/elasticsearch/tree/7560101ec73331acb39a042bde6130e59e4bb630/rest-api-spec/src/main/resources/rest-api-spec/test/indices.update_aliases中查看了ElasticSearch的{{1}}测试套件,但无法找到执行此操作的测试。
我开始认为没有办法做到这一点。我错了吗?
答案 0 :(得分:0)
我不认为这是可能的。没有删除“if exists”,并且在某种程度上可以从任何HTTP API中获得。
但是,您可以在代码中忽略此特定情况的响应,而不是将其视为错误。