最近項(xiàng)目中用到了 es 搜索引擎 ,需求用到了 根據(jù)條件修改es 的字段數(shù)據(jù) ,網(wǎng)上查了很久 很多都是 查詢出要修改的id 然后再根據(jù)id 進(jìn)行單個(gè)修改 這樣太費(fèi)事了
又看了看 es 是有批量修改的語法的
POST 索引名/_update_by_query
{
"script": {
"inline": "ctx._source['要修改的字段']='修改的值';"
},
"query": {
"bool": {
"must": [
{
"term": {
"條件字段": "條件值"
}
}
]
}
}
}
Java api 就這樣寫文章來源:http://www.zghlxwxcb.cn/news/detail-506309.html
UpdateByQueryRequest request = new UpdateByQueryRequest("索引名");
request.setQuery(new TermQueryBuilder("條件字段名","條件字段參數(shù)"));
request.setScript(new Script("ctx._source['要修改的字段名']='要修改為的參數(shù)';"));
restHighLevelClient.updateByQuery(request, RequestOptions.DEFAULT);
這樣寫 應(yīng)該是有些缺陷的 但最總也實(shí)現(xiàn)了 類似于 sql 的 UPDATE 表名 set 字段 = 新數(shù)據(jù) WHERE 條件字段 = 條件文章來源地址http://www.zghlxwxcb.cn/news/detail-506309.html
到了這里,關(guān)于elasticsearch-JAVA-使用UpdateByQueryRequest進(jìn)行條件批量修改的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!