reindex问题
匿名 | 发布于2017年04月17日 | 阅读数:4914POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "version_type": "internal" } }
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "version_type": "external" } }
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "op_type": "create" } }
version_type 的internal 与 external区别 能不能说个实际运用的现象。"op_type": "create" 这个到底是什么意思
2 个回复
kennywu76 - Wood
赞同来自: hailang
假设source有3条文档:
id: 1 text: "a" version: 4
id: 2 text: "b" version: 3
id: 3 text: "c" version: 2
dest有2条文档:
id: 1 text: "e" version: 1
id: 2 text: "f" version: 5
如果将source reindex到dest,文档1和2会产生冲突。
使用不同的version type做reindex,dest里的文档内容和版本变化的结果如下:
version type = internal
id: 1 text: "a" version: 2 # 覆盖 & 内部版本号+1
id: 2 text: "b" version: 6 # 覆盖 & 内部版本号+1
id: 3 text: "c" version: 1 # 新文档,创建,版本号为1
version type = external:
id: 1 text: "a" version: 4 # 外部版本号> 内部,因此覆盖文档 & 保留外部版本号4
id: 2 text: "f" version: 5 # 外部版本号小于内部,版本冲突,保留文档和内部版本号5
id: 3 text: "c" version: 2 # 新文档,创建,并保留外部版本号2
op_type = create:
id: 1 text: "e" version: 1 # dest已有文档忽略不处理
id: 2 text: "f" version: 5 # dest已有文档忽略不处理
id: 3 text: "c" version: 1 # dest没有此文档,新创建(create),版本号为1
范例如有问题,欢迎指正。
hailang
赞同来自: