Elasticsearch 根据非主键进行修改内容

485 阅读1分钟

es 根据条件修改数据

根据非主键修改数据

Map<String, Object> params = new HashMap<>(1);
// 修改数据
params.put("修改字段名", "修改得内容");
UpdateByQueryRequest request = new UpdateByQueryRequest(index);
request.setQuery(new TermQueryBuilder("查询字段名", "查询内容"));
// servicerName 修改的字段名 ctx._source:保持不变,params: 和上面map定义名称保持一致
String code = "ctx._source.servicerName=params.servicerName";
request.setScript(
    new Script(
        ScriptType.INLINE, "painless",
        code,
        params));
// 每次修改多少条数据,大于这个数字则循环修改,直到全部修改完成
request.setBatchSize(100);
// 修改
restHighLevelClient.updateByQuery(request, RequestOptions.DEFAULT);