2016-10-25 40 views
1

我想,以消除對ElasticSearch 2.3別名my_alias如何在刪除ElasticSearch別名時忽略404錯誤?

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,但無濟於事。我查看了ElasticSearch的update_aliases的測試套件https://github.com/elastic/elasticsearch/tree/7560101ec73331acb39a042bde6130e59e4bb630/rest-api-spec/src/main/resources/rest-api-spec/test/indices.update_aliases,但找不到這樣做的測試。

我開始認爲沒有辦法做到這一點。我錯了嗎?

+0

可以通過執行curl -XGET'http:// localhost:9200/_aliases' –

+0

@vinod_vh來共享別名列表根本沒有別名。問題的關鍵是如何忽略我們試圖刪除不存在的別名。 –

+0

如果別名不存在,那麼爲什麼你試圖刪除索引的別名..? –

回答

0

我不認爲這是可能的。沒有刪除「如果存在」,並且這對於任何HTTP API都是有所期待的。

但是,您絕對可以忽略代碼中此特定情況的響應,而不是將其視爲錯誤。