elasticsearch---批量修改,批量更新某个字段
Posted 问题杀手。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch---批量修改,批量更新某个字段相关的知识,希望对你有一定的参考价值。
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();
以上是关于elasticsearch---批量修改,批量更新某个字段的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch实战(十八)-DSL批量写入与更新