我们稍微了解 ElasticSearch 都知道 ElasticSearch 支持Script语法,用起来挺方便的。
一、Elasticsearch 1.x 版本 Script 语法。
1.curl 语法curl -XPOST 'localhost:9200/demo/test/1/_update?pretty' -d '
{
"script" : "ctx._source.xcount += 5"
}'
这样会把index:demo ,type:test ,id:1为条件的数据的xcount字段在原基础上+5。
ctx._source 指向数据的body,也就是你存储的所有字段。
2.Elasticsearch Java API 语法//构造一个Map,用于参数传递
Map paramsMap = Maps.newHashMap();
params.put("count", 10);
UpdateResponse response = client.prepareUpdate("demo", "test", "1")
//更新指定的字段
.setScript("ctx._source.xcount = count")
.setScriptParams(paramsMap)
//执行
.execute().actionGet();
如上代码,支持参数传递,也支持类似curl语法中的+=5类似的运算。
当然也支持字