删除ElasticSearch别名时如何忽略404错误?

时间:2016-10-25 09:20:19

标签: elasticsearch

我试图将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}}测试套件,但无法找到执行此操作的测试。

我开始认为没有办法做到这一点。我错了吗?

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。没有删除“if exists”,并且在某种程度上可以从任何HTTP API中获得。

但是,您可以在代码中忽略此特定情况的响应,而不是将其视为错误。