我正在使用ES1.4.4并希望使用Update API运行更新脚本,该脚本迭代ctx._source.nested_object并仅更新满足脚本要求的嵌套对象。这似乎相对非常简单,但由于某种原因,我没有得到更新。
script : 'for(i in ctx._source.nested_object){ if(ctx._source.nested_object[i].user.id == id){ ctx._source.nested_object[i].user = merge } }',
params : { "id" : "SEL123" , "merge" : { "key1" : "value1" } }
添加/设置到新对象的所有字段都与现有源的字段类型匹配。我的群集实例中启用了脚本。脚本语言是Groovy。
答案 0 :(得分:0)
尝试脚本:
for(i in ctx._source.nested_object){
if (i.user.id == id) {
i.user = merge
}
}