目录:
(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中添加删除测试的方法:
判断索引库是否存在的方法:当上面删除索引库后,判断