elasticsearch - ElasticSearch 上的版本冲突
问题描述
我在 ES 中有一个文档。存在当前具有值 {"Value1"} 的字段 A。现在两个进程并行启动,因此两者都尝试将一些值附加到字段“A”。假设如果两个进程不会并发,那么字段“A”将类似于:{“Value1 Value2Value3 ”} 或 {“Value1 Value3Value2 ”},即一个请求尝试附加“Value2”,另一个请求尝试附加“Value3”。但是对于并发请求,这种情况如何处理?
解决方案
我强烈建议阅读有关版本控制的官方博客,以了解 elasticsearch 如何处理对同一文档的并发更新。
提示它使用乐观锁定来提高速度,您可以使用文档的内部或外部版本控制,但有以下警告,但更新 API 支持在版本冲突的情况下自动重试。
update 和 update_by_query 不适用于内部版本控制。
请参阅update_by_query以进一步阅读。
推荐阅读
- python - 正则表达式 - 查找每隔 n(固定)字符出现在另一个字符串中的字符串
- java - 单击片段时未打开自定义对话框?
- django-rest-framework - 如何使用 Django Rest 框架从外部 http 请求 json 和内部数据库创建视图
- jvm - jinfo 非默认 vm 标志是什么意思
- dart - '_positions.isNotEmpty': ScrollController 未附加到任何滚动视图
- sequelize.js - 如何从 sequelizejs 模型定义创建数据库表?
- algorithm - 算法 - 在整数序列中查找第一个缺失的整数
- angular - 将一些值添加到列表后,角度数据表未引用
- typescript - 如何在打字稿中检查函数的类型?
- angular - 删除 item.a 时显示未经授权