我对Elasticsearch有一个问题如下:
在模式复制是异步的情况下,在索引文档时,文档已经存在于主分片上但尚未复制到副本分片。此时,此文档的GET请求将转发到副本分片。
如果文档尚未在副本分片上编制索引或文档尚未在副本分片上更新,Elasticsearch如何处理此问题?
在索引更新文档的情况下返回的新文档或旧文档的情况下,将返回失败请求?或者请求节点将重新转发到主分片以获取数据?
答案 0 :(得分:2)
首先,我不建议使用异步模式。它并没有提供任何以更安全的方式无法实现的好处,但在可靠性方面却产生了问题。因此,此功能在v1.5中已弃用,在弹性搜索的v2.0中已完全removed。
如果您仍想使用异步并关注获取最新结果,则必须将其与primary
preference一起使用。
如果update操作,您无需执行任何操作。始终首先在主分片上执行更新,然后将操作结果复制到所有副本。