当前位置:   article > 正文

es5.1.1 修改索引数据_es updaterequest

es updaterequest
  1. # 环境描述
  2. 使用es版本为:5.1.1
  3. 使用client为:TransportClient client,不是highLevelClient
  4. # 1. 知道当前数据rowid时
  5. UpdateRequest updateRequest = new UpdateRequest("index-2021.08.16","type","rowid")
  6. .doc(Map.of("agent","aa"));
  7. updateRequest.docAsUpsert(true);
  8. client.update(updateRequest);
  9. # 2. 知道当前数据rowid时 (第二种)
  10. // 创建更新对象
  11. UpdateRequest updateRequest = new UpdateRequest(index,type,id);
  12. // 创建一个indexRequest对象指定索引名,类型,和文档id
  13. IndexRequest indexRequest = new IndexRequest(index,type,id);
  14. // 将需要修改的字段放进source里面,这里的ma可以是map,json,string,以及xtContentBuilder对象
  15. indexRequest.source(data);
  16. // 创建一个updateRequest对象指定索引名,类型,id,然后将indexRequest传入upsert方法中
  17. updateRequest.upsert(indexRequest);
  18. // 再将indexRequest放入doc中,猜测实际做了两次修改
  19. updateRequest.doc(indexRequest);
  20. // 最后发送请求
  21. try {
  22. UpdateResponse updateResponse= client.update(updateRequest).get();
  23. return updateResponse.status().getStatus();
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. # 3. 不知道当前数据rowid时
  28. // 创建更新对象
  29. UpdateRequest updateRequest = new UpdateRequest(index,type,id);
  30. // 创建一个indexRequest对象指定索引名,类型,和文档id
  31. IndexRequest indexRequest = new IndexRequest(index,type,id);
  32. // 将需要修改的字段放进source里面,这里的ma可以是map,json,string,以及xtContentBuilder对象
  33. indexRequest.source(data);
  34. // 创建一个updateRequest对象指定索引名,类型,id,然后将indexRequest传入upsert方法中
  35. updateRequest.upsert(indexRequest);
  36. // 再将indexRequest放入doc中,猜测实际做了两次修改
  37. updateRequest.doc(indexRequest);
  38. // 最后发送请求
  39. try {
  40. UpdateResponse updateResponse= client.update(updateRequest).get();
  41. return updateResponse.status().getStatus();
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45. # 4. 不知道当前数据rowid时 (第二种,highLevelClient时使用)
  46. UpdateByQueryRequest request = new UpdateByQueryRequest();
  47. request.setDocTypes("student");
  48. request.setQuery(new TermQueryBuilder("name","黑骑一户"));
  49. client.updateByQuery(request);
  50. # 5. 当不知道rowid时 (实时刷新更新数据的)
  51. BulkIndexByScrollResponse bulkIndexByScrollResponse = UpdateByQueryAction.INSTANCE.newRequestBuilder(client) // 创建新的请求builder
  52. .source(index) // 设置索引index
  53. .filter(QueryBuilders.termQuery("msg", alertId)) // 设置过滤条件
  54. .script(new Script(ScriptType.INLINE, "painless", "ctx._source.msg='cc'", Collections.EMPTY_MAP)) // 设置批量修改脚本
  55. .abortOnVersionConflict(false) // 设置ES版本导致问题失败是否停止运行
  56. .get();// 执行请求命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/68104
推荐阅读
相关标签
  

闽ICP备14008679号