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

问题

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

解决思路

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

添加字段

PUT dev_zyl/_mapping
{
   
  "properties": {
   
    "levelScore":  {
    
      "type": "double",
      "null_value": 1
    }
  }
}

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

更新旧文档

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

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

总结

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

参考:

相关推荐

  1. ES索引里面添加一个字段更新文档数据

    2023-12-28 14:56:02       53 阅读
  2. Elasticsearch(ES) 添加/更新映射

    2023-12-28 14:56:02       14 阅读
  3. springboot mongodb 数据添加更改‘_class‘字段

    2023-12-28 14:56:02       51 阅读
  4. ES字段更改字段类型

    2023-12-28 14:56:02       38 阅读
  5. MySQLEs数据同步策略

    2023-12-28 14:56:02       12 阅读

最近更新

  1. 探索 Neo4j:图数据库的强大应用

    2023-12-28 14:56:02       0 阅读
  2. Llama-factory源码详细解读

    2023-12-28 14:56:02       1 阅读
  3. springBoot整合mongodb

    2023-12-28 14:56:02       0 阅读
  4. STM32 系统时钟初始化函数和延时函数

    2023-12-28 14:56:02       0 阅读

热门阅读

  1. Rust code: demo of message system

    2023-12-28 14:56:02       35 阅读
  2. 文件&IO

    文件&IO

    2023-12-28 14:56:02      37 阅读
  3. Flutter 官方状态管理 Provider基本使用

    2023-12-28 14:56:02       41 阅读
  4. 我的创作纪念日:感恩、感谢、感激!

    2023-12-28 14:56:02       44 阅读
  5. centos 安装 vsCode

    2023-12-28 14:56:02       36 阅读
  6. 激活函数:神经网络的生命之花

    2023-12-28 14:56:02       34 阅读
  7. 力扣:135. 分发糖果(贪心)

    2023-12-28 14:56:02       37 阅读
  8. Microsoft Edge 浏览器可能遇到的问题,和解决方法

    2023-12-28 14:56:02       50 阅读
  9. ansible 加密

    2023-12-28 14:56:02       39 阅读
  10. CentOS 8 安装指定版本ansible

    2023-12-28 14:56:02       37 阅读