elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

ElasticSearch:在脚本Java插件中更新多个字段

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

我看到了这段代码,updatebyquery可以直接更新源代码

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;
}