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"
}

posted @ 2018-12-09 21:53  Snow~Forever  阅读(510)  评论(0编辑  收藏  举报