【问题标题】:Version Conflict on ElasticSearchElasticSearch 上的版本冲突
【发布时间】:2020-11-13 03:50:36
【问题描述】:

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

【问题讨论】:

  • 感谢您的支持,如果您也能接受答案,那就太好了:)

标签: elasticsearch


【解决方案1】:

我强烈建议阅读official blog on versioning support 以了解 elasticsearch 如何处理对同一文档的并发更新。

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

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

请参考update_by_query进一步阅读。

【讨论】:

    猜你喜欢
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2019-11-12
    • 2013-05-22
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多