首页 > 解决方案 > ElasticSearch 上的版本冲突

问题描述

我在 ES 中有一个文档。存在当前具有值 {"Value1"} 的字段 A。现在两个进程并行启动,因此两者都尝试将一些值附加到字段“A”。假设如果两个进程不会并发,那么字段“A”将类似于:{“Value1 Value2Value3 ”} 或 {“Value1 Value3Value2 ”},即一个请求尝试附加“Value2”,另一个请求尝试附加“Value3”。但是对于并发请求,这种情况如何处理?

标签: elasticsearch

解决方案


我强烈建议阅读有关版本控制的官方博客,以了解 elasticsearch 如何处理对同一文档的并发更新。

提示它使用乐观锁定来提高速度,您可以使用文档的内部或外部版本控制,但有以下警告,但更新 API 支持在版本冲突的情况下自动重试。

update 和 update_by_query 不适用于内部版本控制。

请参阅update_by_query以进一步阅读。


推荐阅读