1. 程式人生 > >elasticsearch 5.0以上不支援consistency 和 quorum

elasticsearch 5.0以上不支援consistency 和 quorum

從ES2.2升級到5.2後,原先執行put 帶 consistency=all / quorum 引數的,都報錯了,提示語法錯誤。。

百度查了一通,都沒發現相關問題。無奈,還是查官方文件。。

發現這是在 5.0-alpha 釋出的時候,帶的feature。。貼上官方文件:

 

有興趣的話,可以到Github上,繼續看看其中原因:

https://github.com/elastic/elasticsearch/pull/19454

就是說,consistency檢查是在Put之前做的。然而,雖然檢查的時候,shard滿足quorum,但是真正從primary shard寫到replica之前,仍會出現shard掛掉,但Update Api會返回succeed。因此,這個檢查並不能保證replica成功寫入,甚至這個primary shard是否能成功寫入也未必能保證。。

因此,修改了語法,用了 下面的 wait_for_active_shards,因為這個更能清楚表述,而沒有歧義。

例子:

PUT /test_index/test_type/1?wait_for_active_shards=1
{
"Name":"xiao ddd"
}