elasticsearch---批量修改,批量更新某个字段
原文链接:http://www.mamicode.com/info-detail-2524351.html1.源生API在这里没有用官方提供的bulk API,而是用的另外一种方式。POST /infomations/infomations/_update_by_queryJSON请求格式{"query": {"match": {"status": "UP_SHELF"}},"script": {
·
原文链接:http://www.mamicode.com/info-detail-2524351.html
1.源生API
在这里没有用官方提供的bulk API,而是用的另外一种方式。
POST /infomations/infomations/_update_by_query
JSON请求格式
{
"query": {
"match": {
"status": "UP_SHELF"
}
},
"script": {
"inline": "ctx._source[‘status‘] = ‘DOWN_SHELF‘"
}
}
POST请求/索引/文档名/_update_by_query
主要看一下下面的script
ctx._source[字段名] = “值”;ctx._source[字段名] = “值”;
多个的话就用分号隔开。
2.JAVA API操作
//集群模式,获取链接
Client client = elasticsearchTemplate.getClient();
UpdateByQueryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE.newRequestBuilder(client);
String name = "修改数值";
updateByQuery.source("索引")
//查询要修改的结果集
.filter(QueryBuilders.termQuery("field", 412))
//修改操作
.script(new Script( "ctx._source[‘field‘]=‘"+ name+"‘;ctx._source[‘field‘]=‘"+name+"‘"));
//响应结果集
BulkByScrollResponse response = updateByQuery.get();
long updated = response.getUpdated();
原文链接:http://www.mamicode.com/info-detail-2524351.html
更多推荐
已为社区贡献1条内容
所有评论(0)