在业务中遇到需要更新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中的字段值要对应起来哦