目录:
(1)RestClient-操作索引库-导入demo
(2)RestClient操作索引-hotel数据结构分析
(3)RestClient操作索引库-初始化RestClient
(4)RestClient操作索引库-创建索引库
(5)RestClient操作索引库-删除和判断索引库
(1)RestClient-操作索引库-导入demo
前面我们学习了通过DSL语句操作ES索引库,文档数据,要想通过java代码操作,必须使用ES官方提供的RestClient实现了

最早的是Low Level Rest Client 后来是Hight Level REST Client,做了进一步封装



数据库:


导入项目:

配置文件:
启动类:

这里用了MyBatis-plus:

service:
实现类:

实体类:

(2)RestClient操作索引-hotel数据结构分析




单个字段搜索效率高还是多个字段搜索效率高,显然是一个字段效率高,但是我的需求是用户输入名称、品牌、商圈能搜到,多个字段还要性能好怎么办?

它并不是把文档拷贝进去,而只是基于它创建倒排索引,将来查的时候看不到这个字段,好像不存在一样,但是搜能根据它搜




(3)RestClient操作索引库-初始化RestClient


SppringBoot项目中默认的ES版本是7.12.2需要自己覆盖它的版本:

创建测试类:

@BeforeEach:单元测试里面的注解,提前完成对象的初始化
@AfterEach:销毁注解

以后写的所有的单元测试,都会先运行BeforeEach 最后运行@AfterEach
写一个方法测试一下:

(4)RestClient操作索引库-创建索引库

mapping映射:
创建一个静态常量,保存DSL语句:


在这个测试方法中,静态导入:
运行这个测试类:
在浏览器查询一下:

(5)RestClient操作索引库-删除和判断索引库

client.indices()返回值是IndicesClient对象里面封装了操作索引库的API


在测试类HotelIndexTest.java中添加删除测试的方法:


判断索引库是否存在的方法:当上面删除索引库后,判断





















