首页 > 编程语言 >Java High Level Rest Client---操作文档

Java High Level Rest Client---操作文档

时间:2023-06-03 13:45:27浏览次数:49  
标签:Java Level hotel request --- client 文档 new hotelDoc

新增文档

  • 1)创建Request对象
  • 2)准备请求参数,也就是DSL中的JSON文档
  • 3)发送请求

    代码示例:
点击查看代码
//新增文档
    @Test
    public void addDoc() throws Exception{
        //根据id查出酒店数据
        Hotel hotel = iHotelService.getById(36934L);
        //将酒店数据转换为文档类型
        HotelDoc hotelDoc = new HotelDoc(hotel);
        //将文档型酒店数据转为json字符串
        String hotleJson = JSON.toJSONString(hotelDoc);
        //准备request对象
        IndexRequest request = new IndexRequest("hotel").id(hotelDoc.getId().toString());
        //准备Json文档
        request.source(hotleJson, XContentType.JSON);
        //发送请求
        client.index(request, RequestOptions.DEFAULT);
    }

查看文档

  • 1)准备Request对象。这次是查询,所以是GetRequest
  • 2)发送请求,得到结果。因为是查询,这里调用client.get()方法
  • 3)解析结果,就是对JSON做反序列化

    代码示例
点击查看代码
//查看文档
    @Test
    public void getDoc() throws Exception{
        //准备request对象
        GetRequest request = new GetRequest("hotel", String.valueOf(36934L));
        //发送请求
        GetResponse response = client.get(request, RequestOptions.DEFAULT);
        //解析结果
        String json = response.getSourceAsString();
        HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);
        System.out.println(hotelDoc);
    }

修改文档

  • 1)准备Request对象。这次是修改,所以是UpdateRequest
  • 2)准备参数。也就是JSON文档,里面包含要修改的字段
  • 3)更新文档。这里调用client.update()方法

    代码示例
点击查看代码
//修改文档
    @Test
    public void editDoc() throws Exception{
        //创建request对象
        UpdateRequest request = new UpdateRequest("hotel", String.valueOf(36934L));
        //准备参数,每两个参数为一对:key-value
        request.doc(
                "price",100,
                "starName","五星"
        );
        //更新文档
        client.update(request,RequestOptions.DEFAULT);
    }

删除文档

  • 1)准备Request对象,因为是删除,这次是DeleteRequest对象。要指定索引库名和id
  • 2)准备参数,无参
  • 3)发送请求。因为是删除,所以是client.delete()方法
    代码示例
点击查看代码
//删除文档
    @Test
    public void deleteDoc() throws Exception{
        //准备request对象
        DeleteRequest request = new DeleteRequest("hotel", String.valueOf(36934L));
        //发送请求
        client.delete(request,RequestOptions.DEFAULT);
    }

批量新增

  • 1)创建Request对象。这里是BulkRequest
  • 2)准备参数。批处理的参数,就是其它Request对象,这里就是多个IndexRequest
  • 3)发起请求。这里是批处理,调用的方法为client.bulk()方法

    代码示例
点击查看代码
//批量新增文档
    @Test
    public void bulkDoc() throws Exception{
        List<Hotel> hotelList = iHotelService.list();
        //创建bulkRequest对象
        BulkRequest bulkRequest = new BulkRequest();
        //准备参数,添加多个新增的request
        //添加要批量提交的请求
        for (int i = 0; i < hotelList.size(); i++) {
            Hotel hotel = hotelList.get(i);
            //转换为文档类型hotelDoc
            HotelDoc hotelDoc = new HotelDoc(hotel);
            //创建新增文档的request对象
            bulkRequest.add(new IndexRequest("hotel")
                            .id(hotelDoc.getId().toString())
                            .source(JSON.toJSONString(hotelDoc),XContentType.JSON));
        }
        //发起bulk请求
        client.bulk(bulkRequest,RequestOptions.DEFAULT);
    }

标签:Java,Level,hotel,request,---,client,文档,new,hotelDoc
From: https://www.cnblogs.com/wzh-Official/p/17453886.html

相关文章

  • javassist动态生成类
    1. 使⽤javassist⽣成类   58来⾃百度百科:Javassist是⼀个开源的分析、编辑和创建Java字节码的类库。是由东京⼯业⼤学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加⼊了开放源代码JBoss 应⽤服务器项⽬,通过使⽤Javassist对字节码操作为JBoss实现动态"AO......
  • C语言-运算符
    算术运算符 算术运算符专门用于算术运算,主要有下面几种。+:正值运算符(一元运算符)-:负值运算符(一元运算符)+:加法运算符(二元运算符)-:减法运算符(二元运算符)*:乘法运算符/:除法运算符%:余值运算符(1)+,-+和-既可以作为一元运算符,也可以作为二元运算符。所谓“一元运算符”,指的是只需要一个运算数......
  • JavaScript学习笔记:浏览器事件
    概念客户端JavaScript程序使用异步事件驱动的编程模型。浏览器会在文档、浏览器或某些元素或与之关联的对象发生某些事情时生成事件对象。比如文档加载完成、敲击键盘输入等。JavaScript程序可以给某些对象绑定监听器函数来监听特定的事件,在该对象上发生指定事件时,这些函数会被......
  • Rockchip RK3399 - rfkill子系统
    一、rfkill子系统1.1rfkill概述rfkill是Linux内核提供的一个框架,用于控制无线通信硬件(如WiFi、蓝牙、NFC等)的开关和状态。rfkill就是RF(射频)设备的开关,有类似一键关闭所有射频外设的功能。rfkill的出现方便管理各种RF芯片的开关,目前已经很多厂商的设备使用的是rfkill的驱......
  • golang 学习之 etcd protobuffer grpc gorm 服务注册发现 go-micro
    1.etcd使用步骤1)下载:https://github.com/etcd-io/etcd/releases/2)配置环境变量3)编辑local-cluster-profile文件:(利用goreman启动方式,生产环境参考官方文档)etcd1:etcd--nameinfra1--listen-client-urlshttp://127.0.0.1:2379--advertise-client-urlshttp://127.0.0.1......
  • linux 内存管理 ------ malloc 的内存分配
     低于128K的内存分配采用具有内存池缓存机制的brk方式,可以减少缺页中断、系统调用的次数。高于128K时采用匿名内存映射区的mmap方式,避免产生太大的内存碎片 如果分配后的虚拟内存没有被访问的话,虚拟内存是不会映射到物理内存的,这样就不会占用物理内存了。只有在访问已分配......
  • elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择
    效果展示(多列可以配置)  一、icon下拉框的多列选择:  二、常规、通用下拉框的多列选择:【注】第二种常规、通用下拉框的多列选择,是在第一种的前端代码上删除几行代码就行(把icon显示标签删去),所以下面着重介绍第一种icon下拉框的多列选择。思路  不使用下拉框标签<el-option>......
  • 分布式医疗云平台(项目功能简介截图)【系统管理(科室管理、用户管理、角色管理、菜单管理
    项目功能截图1.系统管理 1.1.科室管理 1.2、用户管理1.3、角色管理 1.4、菜单管理  1.5、字典管理1.6、通知公告管理 1.7、登陆日志管理 1.8、操作日志管理 1.9、检查费用设置 1.10,挂号费用设置 项目功能截图1.系统管理 1.1.科室管理1.1.1、科室查询 1.1.2、科室添加......
  • 动手实践 MicroStream:Java 持久性的新方法
    MicroStream是目前Java领域最有趣的项目之一。它采用一种新的方法来实现Java持久性,充当一种无缝的对象持久性数据层。MicroStream消除了弄清楚如何持久化应用程序的运行时图的摩擦。所以这次我们将直接进入演示。您将首先学习如何将MicroStream与默认文件系统一起使用,然后我们将......
  • JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用
    场景记录JVM中常用工具。jps:虚拟机进程状态工具jps(JVMProcessStatusTool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID。命令格式:jps[options][hostid]示例:jps-l 选项:-q 只......