当前位置: 首页 > news >正文

es在已有历史数据的文档新增加字段操作

新增字段设置默认值

场景

在已经有大量数据的索引文档上,增加新字段

技术实现

一.更新索引映射

通过PUT请求显式定义新字段类型,确保后续写入的文档能被正确解析

PUT /文档名/_mapping
{"properties": {"字段名1": {"type": ""},"字段名2": {"type": ""}}
}
  • 此操作仅定义字段类型,不会自动填充历史文档的默认值

二.设置默认值

1.写入时自动填充(新文档)

通过 Ingest Pipeline 在文档写入前自动添加默认值, 此操作仅对新写入数据生效

PUT _ingest/pipeline/set_defaults
{"processors": [{"set": { "field": "like", "value": 0 }},{"set": { "field": "disagree", "value": 0 }}]
}PUT /文档名/_settings
{"index.default_pipeline": "set_defaults"
}

动态判断

"script": {"source": """if (!ctx.containsKey('like')) { ctx.like = 0 }if (!ctx.containsKey('disagree')) { ctx.disagree = 0 }"""
}

2.批量回填历史数据(旧文档)

使用 _update_by_query API 批量更新已有文档

POST /service_bot_msg_chat_log/_update_by_query
{"script": {"source": """if (ctx._source.like == null) { ctx._source.like = 0 }if (ctx._source.disagree == null) { ctx._source.disagree = 0 }""","lang": "painless"},"query": {"bool": {"must_not": [{ "exists": { "field": "like" } },{ "exists": { "field": "disagree" } }]}},"timeout": "10m",  // 防止超时"slices": 5        // 并行分片加速处理
}
  • 性能优化
    • 异步执行:添加 ?wait_for_completion=false 转为后台任务

操作建议

  • 新数据优先:优先配置 Ingest Pipeline,确保增量数据自动初始化
  • 历史数据分治:根据数据量选择 _update_by_query(百万级)或 Reindex(亿级)
http://www.dtcms.com/a/200400.html

相关文章:

  • Python編譯出exe如何掛載到工作排程器上
  • VTK|显示三维图像的二维切片
  • Pyro:基于PyTorch的概率编程框架
  • 哈夫曼编码:数据压缩的优雅艺术
  • 使用PHP对接东南亚、日本、印度和印度尼西亚股票数据源
  • 洛谷U536262 井底之“鸡” 附视频讲解
  • WEB安全--SQL注入--Oracle注入
  • 【VMware】虚拟机运行 Linux Ubuntu、MAC 安装和配置
  • oracle序列自增问题
  • 如何在 Windows 11 或 10 上安装 Django
  • Springboot 跨域拦截器配置说明
  • 已知6、7、8月月平均气温和标准差,求夏季季平均温度与标准差
  • 《Opensearch-SQL》论文精读:2025年在BIRD的SOTA方法(Text-to-SQL任务)
  • LightRAG 由入门到精通
  • leetcode刷题日记——对称二叉树
  • 使用腾讯云高性能空间部署YOLOv11训练模型
  • C/C++ 知识点:引用临时对象
  • JavaScript篇:前端模块化进化史:从CommonJS到ES6的奇幻之旅
  • Python Django 的 ORM 编程思想及使用步骤
  • 通过vcpkg交叉编译grpc:构建Arm64平台的Docker化开发环境
  • ALTER AGGREGATE使用场景
  • JSON-to-Excel插件 v2.1.2 新增功能批量转换功能
  • 2025毕业论文与答辩资料精选汇总
  • kotlin Flow的技术范畴
  • 【高德开放平台-注册安全分析报告】
  • 解释:神经网络
  • Python实现VTK - 自学笔记(3):三维数据处理与高级可视化
  • 常用算法/机理模型演示平台搭建(一)
  • Apollo10.0学习——planning模块(8)之scenario、Stage插件详解
  • 2025年PMP 学习二十一 14章 项目立项管理