最近项目中用到了 es 搜索引擎 ,需求用到了 根据条件修改es 的字段数据 ,网上查了很久 很多都是 查询出要修改的id 然后再根据id 进行单个修改 这样太费事了
又看了看 es 是有批量修改的语法的
POST 索引名/_update_by_query
{
"script": {
"inline": "ctx._source['要修改的字段']='修改的值';"
},
"query": {
"bool": {
"must": [
{
"term": {
"条件字段": "条件值"
}
}
]
}
}
}
Java api 就这样写文章来源:https://www.toymoban.com/news/detail-506309.html
UpdateByQueryRequest request = new UpdateByQueryRequest("索引名");
request.setQuery(new TermQueryBuilder("条件字段名","条件字段参数"));
request.setScript(new Script("ctx._source['要修改的字段名']='要修改为的参数';"));
restHighLevelClient.updateByQuery(request, RequestOptions.DEFAULT);
这样写 应该是有些缺陷的 但最总也实现了 类似于 sql 的 UPDATE 表名 set 字段 = 新数据 WHERE 条件字段 = 条件文章来源地址https://www.toymoban.com/news/detail-506309.html
到了这里,关于elasticsearch-JAVA-使用UpdateByQueryRequest进行条件批量修改的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!