(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();
   }

原文地址:https://www.cnblogs.com/javasl/p/12070410.html

时间: 2024-10-03 01:56:28

(19)ElasticSearch java项目中的批量操作mget和bulk的相关文章

(21)ElasticSearch java项目中match、multimath、term、terms以及范围、前缀、通配符、模糊、类型、ids等查询示例

1.查询index1中content字段包含工厂的文档 @Test public void testMatch() throws IOException, InterruptedException, ExecutionException { //指定集群 Settings settings = Settings.builder().put("cluster.name","my-application").build(); //创建客户端 TransportClien

(20)ElasticSearch java项目中的根据指定条件删除文档和查询所有文档

1.删除index1中,title包含工厂的文档 @Test public void testQueryDelete() throws IOException, InterruptedException, ExecutionException { //指定集群 Settings settings = Settings.builder().put("cluster.name","my-application").build(); //创建客户端 TransportCl

java项目中可能会使用到的jar包解释

一.Struts2 用的版本是struts2.3.1.1 一个简单的Struts项目所需的jar包有如下8个 1. struts2-core-2.3.1.1.jar: Struts2的核心类库. 2. xwork-core-2.3.1.1.jar: XWork核心类,XWork是一个标准的command模式实现,并且完全从web层剥离出来.WebWork被构建在Xwork上,而Struts2由Struts1和WebWork两个经典的MVC框架发展而来. 3. ognl-3.0.3.jar: 支持

JAVA项目中的常用的异常处理情况1

Java项目中常用的异常处理情况 1.java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象.经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针, 即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话). 2. java.lang.Class

ckeditor编辑器在java项目中配置

一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将下载下来的CKEditor压缩解压,将解压后的文件夹("ckeditor")拷贝进项目里面,比如我是放在"WebContent"的"commons"文件夹下: B.在需要使用CKEditor的页面引入CKEditor的支持javascript <

JAVA项目中公布WebService服务——简单实例

1.在Java项目中公布一个WebService服务: 怎样公布? --JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务. (1)用jdk1.6.0_21以后的版本号公布. (2)与Web服务相关的类,都位于Javax.jws.*包中 @WebService--此注解用在类上指定将此类公布成一个WebService: EndPoint--此类为端点服务类,当中publish()方法用于将一个已经加入了@WebService注解对象绑定到一个地址的port上,用于公布. 2

JAVA项目中发布WebService服务——简单实例

1,在Java项目中发布一个WebService服务: 如何发布? --JDK1.6中JAX-WS规范定义了如何发布一个WebService服务: (1)用jdk1.6.0_21以后的版本发布: (2)与Web服务相关的类,都位于Javax.jws.*包中 @WebService--此注解用在类上指定将此类发布成一个WebService: EndPoint--此类为端点服务类,其中publish()方法用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上,用于发布. 2,例子

在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,根据hbm文件自动生成pojo和数据库脚本

     首先,我一定要吐槽下,这个Ant管理部署项目的工具,以及hibernate刚刚学习,导入我这一个简单的问题整了一天多,实在效率有点低下.在这两天中,①了解了Ant,知道了在Ant中很灵活的步骤项目的情况,知道了build.xml文件的一些基本写法.②还学习了在MyEclipse这样的集成工具中完成项目部署.③以及在这两种情况中,利用hibernateTools中的hbm2java和hbm2ddl工具,根据对象关系映射文件,自动生成POJO以及SQL文件(就是数据表). 一,在web项目

java项目中META-INF的作用中MANIFEST.MF的作用(转载)

发布Java应用程序时你会感到困难?好在Java提供了一系列打包和发布工具,可以显著的简化发布过程 该文章提供了打包Java code的几种方法,我们将会探讨Java manifest 文件,给出用于管理JAR文件所依赖文件.估计跨平台发布所需的CLasspath的合适方法.我也会解释如何使用manifest包版本特性来确认包的兼容性... 什么是JAR文件? 在开发过程中,我们可以直接使用Java class文件来运行程序,但这并不是一个好方式,好在Java 提供了 JAR(Java Arch