向ES索引里面添加一个字段并更新旧文档数据

问题

最近需要调整ES索引,添加1个字段,并且,对旧文档数据更新新加的字段默认值。

解决思路

通过利用Update mapping API添加1个新字段后,然后,利用Update By Query API将向旧文档数据添加新加字段默认值。

添加字段

bash 复制代码
PUT dev_zyl/_mapping
{
  "properties": {
    "levelScore":  { 
      "type": "double",
      "null_value": 1
    }
  }
}

这里添加了一个levelScore字段,这个字段是double类型,默认值为1

更新旧文档

bash 复制代码
POST dev_zyl/_update_by_query
{
  "query": {
    "match_all": {}
  },
  "script": {
    "source": "ctx._source['levelScore'] = 1"
  }
}

这是查询出所有文档,然后,将levelScore字段设置为1

总结

现在这个时间点,ES不能通过在mapping接口添加新字段的时候,影响到旧数据。不过,单独出一个接口处理旧数据也是很合理的。

参考:

相关推荐
数幄科技1 分钟前
电力装备制造业智能化转型】【数据基础设施篇】【5】数据采集 ETL 的可靠性设计
大数据·人工智能·算法·数据治理·数幄科技
海伯森技术1 分钟前
海伯森3D线光谱共焦精密测量技术及产业化应用
大数据·人工智能·3d
打码人的日常分享2 分钟前
信息化数据安全管理制度办法(Word)
大数据·运维·网络·云计算·制造
大大大大晴天️12 分钟前
Hudi文件布局:COW与MOR表案例解析
大数据·hudi
库拉大叔15 分钟前
大模型AI横评实测:GPT-4与Claude 3.5三大维度对比,落地选型怎么选?
大数据·人工智能
ModelHub XC信创模盒18 分钟前
压力之下,重构赛道:从中美AI博弈到信创生态的深层跃迁
大数据·人工智能·重构·开源·信创·范式
keruilai076919 分钟前
工业降温从细微之处优化升级 小小改动大幅提升舒适体验
大数据
TG_yunshuguoji22 分钟前
亚马逊云代理商:如何用 CloudWatch+Lambda 打造自动化告警系统
大数据·运维·自动化·云计算·aws
Zhu75830 分钟前
在k8s环境部署elasticsearch+kibana
elasticsearch·kubernetes·jenkins
电商API_1800790524730 分钟前
高可用采集架构:分布式定时抓取淘宝商品详情项目设计
大数据·分布式·架构·数据挖掘·网络爬虫