2016-07-28 59 views
1

我有一个在弹性搜索中通过查询进行更新的用例。按查询更新以便在弹性搜索中一次更新多个字段

我保持一个文档一样 -

"a" : "1", 
"b" : "2", 
"version1" : 456 
"c" : { 
    "version2" : 123, 
    "d" : "3" 
} 

现在依赖性为我用区分

  1. 我不是要更新场A,B和VERSION1
  2. 或者我会更新场d和version2。

我在Update By Query in Elasticsearch using Java得到了部分答案。

我试图像这 -

BulkIndexByScrollResponse r = ubqrb.script(script) 
     .script(script1) 
     .script(script2) 
     .script(script3) 
     .script(script4) 
     .filter(qb).get(); 

事情但是UpdateByQueryRequestBuilder不允许我给多个脚本,只和最后一个,即script4使用和休息被忽略。

我也尝试 -

Script script4 = new Script("ctx._source.a=\"abc\",b=\"xyz\""); 

但是这其中也失败了。

任何想法可以使用更新的地方做什么。 在此先感谢

回答

0

尝试:

new Script("ctx._source.a=\"abc\"; ctx._source.b=\"xyz\"");