elasticsearch批量修改,批量更新某個字段

1.源生APIelasticsearch

 在這裏沒有用官方提供的bulk API,而是用的另一種方式。ui

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操做spa

//集羣模式,獲取連接
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();
相關文章
相關標籤/搜索