ElasticSearch:在脚本Java插件中更新多个字段
我看到了这段代码,updatebyquery可以直接更新源代码ElasticSearch:在脚本Java插件中更新多个字段,java,
elasticsearch,Java,
elasticsearch,我看到了这段代码,updatebyquery可以直接更新源代码 POST twitter/_update_by_query { "script": { "inline": "ctx._source.likes++", "lang": "painless" }, "query": { "term": { "user": "kimchy" } } } 由于我复杂的业务逻辑,我没有使用无痛,而是用Java编写了一个本机脚本插件 { "s
POST twitter/_update_by_query
{
"script": {
"inline": "ctx._source.likes++",
"lang": "painless"
},
"query": {
"term": {
"user": "kimchy"
}
}
}
由于我复杂的业务逻辑,我没有使用无痛,而是用Java编写了一个本机脚本插件
{
"subtotal": 1000,
"markup": 2,
"total": 2000,
"items": [
{
"subtotal": 100,
"markup": 2,
"total": 200
},
{
"subtotal": 500,
"markup": 2,
"total": 1000
}
]
}
用户可以在应用程序中设置标记值。如果用户将标记更改为3,我想更新标记和总计字段,包括嵌套对象中的标记和总计字段。(注意:我不能使用无痛,因为在我的情况下,逻辑比仅乘以这些字段更复杂。这就是我使用Java的原因)
我的代码与
我尝试使用source().put(“markup”,3)
但是我一直得到NullPointerException
ElasticSearch版本:5.0.0
多谢各位
// my plugin code
public Object run() {
// change field value of "markup"
// change field value of "total"
return true;
}