在业务中遇到需要更新ES中某个表格里面一个字段中的值,这个字段是一个nested嵌套对象数组(二级表),需要更新里面某个对象的某1-2个字端的值,网上搜索了一下,最后找到了一个解决办法,运用的是es中自带的脚本。
{
"script": { "lang": "painless",
"source": "ctx._source.*[i](嵌套对象字段名[对象下标]).*(需要更新字段名)=params.new_*(更新值);
ctx._source.*[i](嵌套对象字段名[对象下标]).*(需要更新字段名)=params.new_*(更新值)",
"params": { "new_*": new value, "new_*": new value }
}
更新需要传入更新对象的下标,可以更新多个字段值,用分号分割,等号后的更新值字段对应下方params中的字段值要对应起来哦
本文介绍了一种在Elasticsearch中更新嵌套对象数组特定字段值的方法,利用ES自带的painless脚本,实现了对nested类型字段中指定对象及字段的精准更新。

1178

被折叠的 条评论
为什么被折叠?



