• elasticsearch笔记(4) java操作es的文档


    ------------恢复内容开始------------

    一. 创建document, 分为自动生成id和手动生成id

     1 # 创建文档 手动生成id
     2 POST /books/noval/1011
     3 {
     4   "name": "红楼梦",
     5   "author": "曹雪芹",
     6   "count": 5932222,
     7   "onsale": "1646",
     8   "descr": "红楼梦是一本女生命运的小说"
     9 }
    10 
    11 # 创建文档 自动生成id
    12 POST /books/noval
    13 {
    14   "name": "水浒传",
    15   "author": "施耐庵",
    16   "count": 59322,
    17   "onsale": "1546",
    18   "descr": "一本关于农民起义的小说"
    19 }
     1 //        准备json数据
     2         Person person = new Person();
     3         person.setName("jim");
     4         person.setAge(10);
     5         person.setId(1001);
     6 
     7         ObjectMapper mapper = new ObjectMapper();//jackson-bind插件中的对象
     8         String string = mapper.writeValueAsString(person);
     9 
    10 
    11 //        准备IndexRequest对象(设置好index  type  以及id,不加id会自动创建) POST /books/noval/1011
    12         IndexRequest indexRequest = new IndexRequest(index,type, person.getId().toString());
    13         indexRequest.source(string, XContentType.JSON);
    14 
    15         //  获取连接restHighLevelClient
    16         HttpHost httpHost = new HttpHost(HOST,PORT);
    17         RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
    18         RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    19 //        通过client对象执行添加
    20         IndexResponse indexResponse = restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
    21         DocWriteResponse.Result result = indexResponse.getResult();
    22         System.out.println(result);
    23     }

     二. 修改document

     1 //        1. 创建map
     2         Map<String, Object> map = new HashMap();
     3         map.put("name","tom");
     4         map.put("age", 100);
     5 //      2.建立updateRequest对象封装数据;
     6         String index = "person";
     7         String type = "man";
     8         String id = "1001";//需要通过id操作
     9         UpdateRequest updateRequest = new UpdateRequest(index, type, id);
    10         updateRequest.doc(map);
    11 //        3. clien操作
    12         HttpHost httpHost = new HttpHost(HOST,PORT);
    13         RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
    14         RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    15         UpdateResponse update = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
    16         System.out.println(update);

    三, 删除document

     1  //1封装request对象
     2         String index = "person";
     3         String type = "man";
     4         String id = "1001";//需要通过id操作
     5         DeleteRequest deleteRequest = new DeleteRequest(index, type, id);
     6 //        2.用client删除
     7         HttpHost httpHost = new HttpHost(HOST,PORT);
     8         RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
     9         RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    10         DeleteResponse delete = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
    11         System.out.println(delete);

    四. 批量操作(通过client.bulk(bulk)来操作)

    4.1 批量添加

     1 //        1. 准备多个person
     2         Person person1 = new Person(1003,"jack1",10);
     3         Person person2 = new Person(1004,"jack2",10);
     4         Person person3 = new Person(1005,"jack3",10);
     5 
     6         ObjectMapper mapper = new ObjectMapper();
     7         String p1 = mapper.writeValueAsString(person1);
     8         String p2 = mapper.writeValueAsString(person2);
     9         String p3 = mapper.writeValueAsString(person3);
    10 
    11 //           2. 创建BulkRequest对象
    12         BulkRequest bulkRequest = new BulkRequest();
    13         bulkRequest.add(new IndexRequest("person","man",person1.getId().toString()).source(p1, XContentType.JSON))
    14                 .add(new IndexRequest("person","man",person2.getId().toString()).source(p2, XContentType.JSON))
    15                 .add(new IndexRequest("person","man",person3.getId().toString()).source(p3, XContentType.JSON));
    16 
    17 //            3通过client操作
    18         HttpHost httpHost = new HttpHost(HOST,PORT);
    19         RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
    20         RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    21 
    22         BulkResponse bulk = restHighLevelClient.bulk(bulkRequest,RequestOptions.DEFAULT);
    23         System.out.println(bulk);

    4.2 批量删除

     1 //     1.准备deleteRequest
     2         String index = "person";
     3         String type = "man";
     4 
     5         DeleteRequest deleteRequest1 = new DeleteRequest(index, type, "1003");
     6         DeleteRequest deleteRequest2 = new DeleteRequest(index, type, "1004");
     7 
     8 //        2.创建bulk
     9         BulkRequest bulkRequest = new BulkRequest();
    10         bulkRequest.add(deleteRequest1).add(deleteRequest2);
    11 
    12 //            3通过client操作
    13         HttpHost httpHost = new HttpHost(HOST, PORT);
    14         RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
    15         RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    16 
    17         BulkResponse bulk = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
    18         System.out.println(bulk);
  • 相关阅读:
    Linux下架构高可用性网络----HA+LB+lvs
    MacBook如何用Parallels Desktop安装windows7/8
    Win10如何彻底禁用小娜?彻底禁用小娜的方法
    安卓手机微信发不出去怎么办 微信不能发信息怎么办
    计算机名、主机名、用户账户名与NetBIOS名有什么区别
    安装corel x8提示你已安装了另外一个版本
    ssh整合问题总结--在添加商品模块实现图片(文件)的上传
    代理设计模式之静态代理与动态代理(超..)详解
    Java基础--反射机制的知识点梳理
    ssh整合问题总结--运行项目时报java.lang.StackOverflowError(堆栈溢出)异常
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/14402055.html
Copyright © 2020-2023  润新知