1. 程式人生 > >Elasticsearch 更新 nested 巢狀物件 陣列中某個物件的某些欄位的值

Elasticsearch 更新 nested 巢狀物件 陣列中某個物件的某些欄位的值

在業務中遇到需要更新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中的欄位值要對應起來哦