首页 > 编程语言 >Java High Level Rest Client---操作索引库

Java High Level Rest Client---操作索引库

时间:2023-06-03 13:46:47浏览次数:40  
标签:Java Level request 代码 Request --- 索引 点击 client

操作索引库
初始化RestClient

  1. 引入es的RestHighLevelClient依赖:
点击查看代码
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
  	<version>7.12.1</version>
</dependency>
2. 因为SpringBoot默认的ES版本是7.6.2,所以我们需要覆盖默认的ES版本:
点击查看代码
<properties>
    <java.version>1.8</java.version>
    <elasticsearch.version>7.12.1</elasticsearch.version>
</properties>
3. 初始化RestHighLevelClient:
点击查看代码
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
        HttpHost.create("http://192.168.150.101:9200")
));
4. 使用完后关闭es连接
点击查看代码
void tearDown() throws IOException {
        this.client.close();
    }

创建索引库
代码分为三步:

  • 1)创建Request对象。因为是创建索引库的操作,因此Request是CreateIndexRequest。
  • 2)添加请求参数,其实就是DSL的JSON参数部分。因为json字符串很长,这里是定义了静态字符串常量MAPPING_TEMPLATE,让代码看起来更加优雅。
  • 3)发送请求,client.indices()方法的返回值是IndicesClient类型,封装了所有与索引库操作有关的方法。
    代码:
点击查看代码
@Test
void createHotelIndex() throws IOException {
    // 1.创建Request对象
    CreateIndexRequest request = new CreateIndexRequest("hotel");
    // 2.准备请求的参数:DSL语句
    request.source(MAPPING_TEMPLATE, XContentType.JSON);
    // 3.发送请求
    client.indices().create(request, RequestOptions.DEFAULT);
}

删除索引库
代码分为三步:

  • 1)创建Request对象。这次是DeleteIndexRequest对象
  • 2)准备参数。这里是无参
  • 3)发送请求。改用delete方法
    代码:
点击查看代码
@Test
void testDeleteHotelIndex() throws IOException {
    // 1.创建Request对象
    DeleteIndexRequest request = new DeleteIndexRequest("hotel");
    // 2.发送请求
    client.indices().delete(request, RequestOptions.DEFAULT);
}

判断索引库是否存在
代码分为三步:

  • 1)创建Request对象。这次是GetIndexRequest对象
  • 2)准备参数。这里是无参
  • 3)发送请求。改用exists方法
    代码:
点击查看代码
@Test
void testExistsHotelIndex() throws IOException {
    // 1.创建Request对象
    GetIndexRequest request = new GetIndexRequest("hotel");
    // 2.发送请求
    boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
    // 3.输出
    System.err.println(exists ? "索引库已经存在!" : "索引库不存在!");
}

标签:Java,Level,request,代码,Request,---,索引,点击,client
From: https://www.cnblogs.com/wzh-Official/p/17453868.html

相关文章

  • Splunk Enterprise 9.0.5 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
    SplunkEnterprise9.0.5(macOS,Linux,Windows)-机器数据管理和分析请访问原文链接:https://sysin.org/blog/splunk-9/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org混合世界的数据平台快速、大规模地从可见性转向行动,以实现安全性、可观察性等目标。2TB从......
  • Java High Level Rest Client---操作文档
    新增文档1)创建Request对象2)准备请求参数,也就是DSL中的JSON文档3)发送请求代码示例:点击查看代码//新增文档@TestpublicvoidaddDoc()throwsException{//根据id查出酒店数据Hotelhotel=iHotelService.getById(36934L);//将酒店......
  • 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、科室添加......