一、基于_version的乐观锁并发控制
语法:PUT /test_index/test_type/id?version=xxx
更新时带上数据的版本号,只有版本号一致的情况下才可以修改,如果出现版本号不一致的情况或者丢弃该数据或者获取最新的版本号然后在进行更新
PUT /test_index/test_type/7?version=1
{
"test_field": "test client 1"
}
{
"_index": "test_index",
"_type": "test_type",
"_id": "7",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": false
}
二、基于external
version进行乐观锁并发控制
语法: PUT
/test_index/test_type/id?version=xxxxx&version_type=external
三、_version和external version的区别
version_type=external与_version的区别在于,
_version,只有当你提供的version与es中的_version一模一样的时候,才可以进行修改,只要不一样,就报错;
version_type=external的时候,只有当你提供的version比es中的_version大的时候,才能完成修