es updateByQuery 学习使用
这个api 一般在生产是被禁用的,首先创建索引PUT /tyl_2021{"mappings": {"properties": {"title":{"type": "text"},"name":{"type": "text"},"age":{"type": "integer"},"created":{"type": "date","format": "strict_date_optional_t
·
这个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
* Map<String, Object> map = 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);
* }
查看结果
更多推荐
已为社区贡献2条内容
所有评论(0)