这个api 一般在生产是被禁用的,
首先创建索引
PUT /tyl_2021
{
"mappings": {
"properties": {
"title":{"type": "text"},
"name":{"type": "text"},
"age":{"type": "integer"},
"created":{
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
}
}
},
"settings": {
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
}
}
put 数据
PUT /tyl_2021/_doc/1
{
"name":"tyl666",
"title":"tyl18",
"age":18,
"created":"2020-11-01"
}
PUT /tyl_2021/_doc/2
{
"name":"tyl666",
"title":"tyl18",
"age":18,
"created":"2020-11-01"
}
PUT /tyl_2021/_doc/3
{
"name":"tyl666",
"title":"tyl18",
"age":18,
"created":"2020-11-01"
}
springboot api
* Mapmap = new HashMap<>(5); * map.put("title","i love you"); * // 封装script中的code 数据格式:ctx._source.goodsName=params.goodsName; * StringBuilder sb = new StringBuilder(); * map.keySet().stream().forEach(p -> { * sb.append("ctx._source.").append(p).append("=params.").append(p).append(";"); * }); * UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest("tyl_*"); * updateByQueryRequest.setRefresh(true); * // 设置查询条件 * updateByQueryRequest.setQuery(new TermQueryBuilder("title", "张五111")); * //设置版本冲突时继续 * updateByQueryRequest.setConflicts("proceed"); * script script = new script(scriptType.INLINE, "painless", sb.toString(), map); * updateByQueryRequest.setscript(script); * * try { * BulkByScrollResponse bulkByScrollResponse = esClient1.updateByQuery(updateByQueryRequest, RequestOptions.DEFAULT); * log.info("查询更新索引:[{}]操作共耗时:[{}],共修改文档数:[{}]", * "indexName", bulkByScrollResponse.getTook(), bulkByScrollResponse.getUpdated()); * } catch (IOException e) { * log.error("查询更新索引:[{}]操作出现异常:{}", "indexName", e); * }
查看结果



