向ES索引里面添加一个字段并更新旧文档数据
2023-12-27 18:48:37
问题
最近需要调整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接口添加新字段的时候,影响到旧数据。不过,单独出一个接口处理旧数据也是很合理的。
参考:
文章来源:https://blog.csdn.net/fxtxz2/article/details/135251539
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!