Elasticsearch:通过脚本更新嵌套对象

时间:2015-04-10 13:20:29

标签: groovy elasticsearch

我正在使用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。

1 个答案:

答案 0 :(得分:0)

尝试脚本:

for(i in ctx._source.nested_object){ 
    if (i.user.id == id) { 
        i.user = merge
    } 
}