不为失败找理由,要为成功找方法。

reindex是否支持只更新版本号比较低的旧文档?

Elasticsearch | 作者 wangxinrong | 发布于2023年11月02日 | 阅读数:2286

对应的具体需求是,索引添加了一个新的mapping字段,想重新刷下原有数据,使所有数据都支持按新增字段搜索。
我希望做的操作如下:
1.更新mapping配置,添加新字段,使新写入的数据生效。
2.对索引做reindex,将索引abc数据导到abc_bak中。
3.再对abc_bak做reindex导回abc,但是只更新abc_bak中_version小于等于abc的文档,因为2、3两步期间,abc索引持续有新写入或被更新的数据,新增或更新的数据不需要重刷就可生效,而且也要防止被改回成旧的值。

我看文档里_reindex默认行为是会直接覆盖相同id的数据,或者设置version_type为external、external_gt、external_gte中的一个,但都不支持我说的那种,只更新版本号相同或更低的数据。
如果有其他方式在不中断原有索引读写的情况下,实现重刷所有数据的目的也可以。
已邀请:

Ombres

赞同来自:

update by query 原地更新最方便
script 中不做数据修改

Charele - Cisco4321

赞同来自:

用version_type参数实现不了吗?

要回复问题请先登录注册