You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch重索引时自定义ID并新增数据解决冲突问题问询

Elasticsearch重索引冲突问题解决方案

你当前执行重索引报错的核心原因是配置了"op_type": "create",该参数要求只有目标索引中不存在和源文档同ID的文档时,才会执行写入操作。多次对同一批源数据执行重索引时,源文档ID没有变化,就会触发版本冲突报错。

通过重索引时修改文档ID的方式完全可以解决该问题,非常适配你需要同一份数据对应不同项目名的场景,修改后不同项目对应的文档ID唯一,不会出现ID重复导致的冲突。

你可以参考修改后的重索引语句,将项目名作为前缀/后缀拼到原有文档ID上,保证不同项目的ID不重复:

{
  "source": {
    "index": "demodata"
  },
  "dest": {
    "index": "new_twitter",
    "op_type": "create"
  },
  "script": {
    "source": "ctx._source['project'] = 'Personal3';ctx._id = 'Personal3_' + ctx._id;",
    "lang": "painless"
  }
}

如果你不想修改文档ID,也可以通过以下配置实现需求:

  • 新增"conflicts": "proceed"配置,直接跳过冲突的文档,仅写入目标索引中不存在的新文档
  • 移除"op_type": "create"配置,使用默认覆盖模式写入,相同ID的旧文档会被新内容直接覆盖

内容的提问来源于stack exchange,提问作者Janny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:54:07