Elasticsearch Bulk批量操作

ElasticSearch-javaAPI-Bulk批量操作
脚本批量操作

{"delete":{"_index":"person","_id":"2"}}
{"create":{"_index":"person","_id":"5"}}
{"name":"田七","age":22,"address":"北京海淀区"}
{"update":{"_index":"person","_id":"3"}}

javaApi批量操作
/**

  • 批量操作
  • 删除5号记录
  • 添加8号记录
  • 修改4号记录,名称为赵六4号
    */
    @Test
    void bulkDoc() throws IOException {
    //创建bulkRequest,整合所有操作
    BulkRequest bulkRequest=new BulkRequest();
    //删除5号记录
    DeleteRequest deleteRequest=new DeleteRequest("person","5");
    bulkRequest.add(deleteRequest);

//添加8号记录
Map<String, Object> mapAdd=new HashMap<>();
mapAdd.put("name","tomas");
mapAdd.put("age",38);
mapAdd.put("address","北京");
IndexRequest indexRequest=new IndexRequest("person").id("8").source(mapAdd);
bulkRequest.add(indexRequest);

//修改4号记录
Map<String, Object> mapUpdate=new HashMap<>();
mapUpdate.put("name","赵六4号");
UpdateRequest updateRequest=new UpdateRequest("person","4").doc(mapUpdate);
bulkRequest.add(updateRequest);

//执行批量操作
BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
if (bulkResponse.hasFailures()) {
BulkItemResponse[] bulkItemResponse = bulkResponse.getItems();
for (int i = 0; i <bulkItemResponse.length ; i++) {
System.out.println(bulkItemResponse[i].getItemId()+":"+bulkItemResponse[i].getIndex()+":"+bulkItemResponse[i].getFailureMessage());
}
}
}

posted @   托马斯布莱克  阅读(134)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2020-12-26 TCP/IP面试一览
点击右上角即可分享
微信分享提示