• (19)ElasticSearch java项目中的批量操作mget和bulk


      1、查询索引是index1,类型是blog,id是8、10和索引是lib3,类型是user,id是1、2、3的文档

    @Test
        public void testMultiGet() throws IOException, InterruptedException, ExecutionException {
            //指定集群
            Settings settings = Settings.builder().put("cluster.name","my-application").build(); 
            //创建客户端
            TransportClient client = new PreBuiltTransportClient(settings)
                                    .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.43.151"),9300));
            //执行批量查询,并返回结果
            MultiGetResponse response = client.prepareMultiGet()
                                       .add("index1","blog","8","10")
                                       .add("lib3","user","1","2","3")
                                       .get();
            //遍历输出结果,输出json字符串
            for(MultiGetItemResponse item:response) {
                GetResponse gr = item.getResponse();
                if(gr != null && gr.isExists()) {
                    System.out.println(gr.getSourceAsString());
                }
            }
            client.close();
       }

      2、给索引index1,类型blog批量添加id为3和4的文档

    @Test
        public void testBulk() throws IOException, InterruptedException, ExecutionException {
            //指定集群
            Settings settings = Settings.builder().put("cluster.name","my-application").build(); 
            //创建客户端
            TransportClient client = new PreBuiltTransportClient(settings)
                                    .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.43.151"),9300));
            //创建文档
            XContentBuilder doc1 = XContentFactory.jsonBuilder()
                     .startObject()
                     .field("id","9")
                     .field("title","工厂模式9")
                     .field("content","静态工厂,实例工厂9。")
                     .field("postdate","2018-05-20")
                     .field("url","csdn.net/79239027")
                     .endObject();
            XContentBuilder doc2 = XContentFactory.jsonBuilder()
                     .startObject()
                     .field("id","29")
                     .field("title","工厂模式29")
                     .field("content","静态工厂,实例工厂29。")
                     .field("postdate","2018-05-20")
                     .field("url","csdn.net/79239027")
                     .endObject();
            //bulk请求
            BulkRequestBuilder bulkBuild = client.prepareBulk();
            //指定创建文档的位置
            bulkBuild.add(client.prepareIndex("index1","blog","3").setSource(doc1));
            bulkBuild.add(client.prepareIndex("index1","blog","4").setSource(doc2));
            //返回结果
            BulkResponse response = bulkBuild.get();
            //如果创建成功输出OK
            System.out.println(response.status());
            if(response.hasFailures()) {
                System.out.println("失败了");
            }
            client.close();
       }
  • 相关阅读:
    1688 求逆序对
    2534 渡河
    1220 数字三角形
    JavaWeb网上图书商城完整项目--26.注册页面之验证码换一张实现
    JavaWeb网上图书商城完整项目--25.注册页面之隐藏没有内容的错误信息实现
    JavaWeb网上图书商城完整项目--24.注册页面的css样式实现
    JavaWeb网上图书商城完整项目--23.注册页面之html实现
    JavaWeb网上图书商城完整项目--21.用户模块各层相关类的创建
    JavaWeb网上图书商城完整项目--13.项目所需环境的搭建
    JavaWeb网上图书商城完整项目--12.项目所需jquery函数介绍之ajax
  • 原文地址:https://www.cnblogs.com/javasl/p/12070410.html
Copyright © 2020-2023  润新知