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

请求提供ElasticDump transform选项使用示例:跨ES服务器迁移并修改字段

使用 elasticdump 的 transform 选项实现索引迁移并修改字段

前提准备

  • 确保已全局安装 elasticdump:npm install elasticdump -g

基础命令结构

elasticdump 的核心命令格式如下,其中 --transform 参数用于在数据迁移过程中修改文档字段:

elasticdump \
  --input=http://源ES服务器IP:9200/源索引名 \
  --output=http://目标ES服务器IP:9200/目标索引名 \
  --transform="function(doc) { /* 在这里编写字段修改逻辑 */ return doc; }"

常用 transform 示例

1. 修改已有字段的值

比如将文档中的 status 字段值从 active 改为 enabled,同时给 create_time 字段添加前缀:

elasticdump \
  --input=http://192.168.1.10:9200/my_source_index \
  --output=http://192.168.1.20:9200/my_target_index \
  --transform="function(doc) { 
    if (doc._source.status === 'active') {
      doc._source.status = 'enabled';
    }
    doc._source.create_time = '2024-' + doc._source.create_time;
    return doc; 
  }"

2. 添加新字段

给所有文档添加一个 migrated_from 字段,标记数据来源:

elasticdump \
  --input=http://192.168.1.10:9200/my_source_index \
  --output=http://192.168.1.20:9200/my_target_index \
  --transform="function(doc) { 
    doc._source.migrated_from = 'old_es_server';
    return doc; 
  }"

3. 删除不需要的字段

移除文档中的 sensitive_data 敏感字段:

elasticdump \
  --input=http://192.168.1.10:9200/my_source_index \
  --output=http://192.168.1.20:9200/my_target_index \
  --transform="function(doc) { 
    delete doc._source.sensitive_data;
    return doc; 
  }"

4. 嵌套字段修改

如果字段是嵌套结构,比如修改 user.info.age 的值(统一加1):

elasticdump \
  --input=http://192.168.1.10:9200/my_source_index \
  --output=http://192.168.1.20:9200/my_target_index \
  --transform="function(doc) { 
    if (doc._source.user && doc._source.user.info) {
      doc._source.user.info.age = parseInt(doc._source.user.info.age) + 1;
    }
    return doc; 
  }"

注意事项

  • doc 对象包含 Elasticsearch 文档的完整结构,实际业务数据存储在 doc._source 中
  • 必须确保 transform 函数最后返回修改后的 doc,否则数据无法正确写入目标索引
  • 如果修改逻辑复杂,可以将函数写在单独的 JS 文件中,通过 --transform="./my-transform.js" 引用(文件中直接导出函数即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:51:00