3. 外部版本控制:
(1). 什么时候做为外部版本控制?
- 一般是用es来做搜索的,通常项目中还会用到redis数据库、oracle数据库.(通常用的是时间戳来做版本控制的),会把关系型数据库的数据导到es中.
- 这时,希望es的版本控制与关系型数据库版本保持一致.
- es在处理外部版本号时,不再是检查_version是否与请求中指定的数值相同,而是检查当前的_version是否比指定的数值小.
- 如果请求成功,那么外部的版本号就会被存储到文档中的_version中.
(2). 设置外部版本:
curl -XPUT "localhost:9200/lib/user/1/_update?version=2&version_type=external&pretty" -H 'Content-Type: application/json' -d'{
"doc":{
"age": 100
}
}'
注:
- 当前版本是3.
- 需要保持_version与外部版本控制的数据一致,使用version_type=external.
- 如果还用等于内部版本控制的版本是会报错的,必须要大于内部自身版本.执行完后,内部的版本与外部版本一致了.