旧版本的elasticsearch是用version来解决并发问题,采用乐观锁的方式,比较更新时的version是否相同来决定能不能更新
在新版本es再使用version就会报上述问题,而新版本用的是_seq_no和_primary_term两个字段来代替version处理并发问题,在查询文档时,这两个字段会返回。
所以现在es控制并发问题的做法是:
查看结果:更新成功
要是出现并发问题的话效果会这样:
但是经测试,external version还是能够使用的,这是版本冲突的显示异常
external version校验成功的更新效果:这里要求versoin要大于当前文档的版本号才能成功更新,等于的话却是会报错的
相关文章: