黑马学ElasticSearch(三)

目录:

(1)RestClient-操作索引库-导入demo

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

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

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

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


(1)RestClient-操作索引库-导入demo

前面我们学习了通过DSL语句操作ES索引库,文档数据,要想通过java代码操作,必须使用ES官方提供的RestClient实现了

黑马学ElasticSearch(三)_第1张图片

 最早的是Low Level Rest Client 后来是Hight Level REST Client,做了进一步封装黑马学ElasticSearch(三)_第2张图片

 黑马学ElasticSearch(三)_第3张图片

黑马学ElasticSearch(三)_第4张图片

 黑马学ElasticSearch(三)_第5张图片

数据库: 

黑马学ElasticSearch(三)_第6张图片 黑马学ElasticSearch(三)_第7张图片

 黑马学ElasticSearch(三)_第8张图片

 导入项目:黑马学ElasticSearch(三)_第9张图片

黑马学ElasticSearch(三)_第10张图片

 配置文件:黑马学ElasticSearch(三)_第11张图片

启动类:

黑马学ElasticSearch(三)_第12张图片 黑马学ElasticSearch(三)_第13张图片

这里用了MyBatis-plus:

黑马学ElasticSearch(三)_第14张图片

service:黑马学ElasticSearch(三)_第15张图片 实现类:

黑马学ElasticSearch(三)_第16张图片

 实体类:

黑马学ElasticSearch(三)_第17张图片

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

 黑马学ElasticSearch(三)_第18张图片

 黑马学ElasticSearch(三)_第19张图片

黑马学ElasticSearch(三)_第20张图片

黑马学ElasticSearch(三)_第21张图片

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

黑马学ElasticSearch(三)_第22张图片

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

 黑马学ElasticSearch(三)_第23张图片

 黑马学ElasticSearch(三)_第24张图片

黑马学ElasticSearch(三)_第25张图片

黑马学ElasticSearch(三)_第26张图片

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

黑马学ElasticSearch(三)_第27张图片

黑马学ElasticSearch(三)_第28张图片

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

黑马学ElasticSearch(三)_第29张图片

 创建测试类:

黑马学ElasticSearch(三)_第30张图片

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

@AfterEach:销毁注解

黑马学ElasticSearch(三)_第31张图片

以后写的所有的单元测试,都会先运行BeforeEach 最后运行@AfterEach

写一个方法测试一下:

黑马学ElasticSearch(三)_第32张图片

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

黑马学ElasticSearch(三)_第33张图片

 mapping映射:黑马学ElasticSearch(三)_第34张图片

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

 黑马学ElasticSearch(三)_第35张图片

 黑马学ElasticSearch(三)_第36张图片

 在这个测试方法中,静态导入:黑马学ElasticSearch(三)_第37张图片

黑马学ElasticSearch(三)_第38张图片 

 

 运行这个测试类:黑马学ElasticSearch(三)_第39张图片

在浏览器查询一下:

黑马学ElasticSearch(三)_第40张图片

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

黑马学ElasticSearch(三)_第41张图片

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

 黑马学ElasticSearch(三)_第42张图片

黑马学ElasticSearch(三)_第43张图片

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

黑马学ElasticSearch(三)_第44张图片

黑马学ElasticSearch(三)_第45张图片

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

黑马学ElasticSearch(三)_第46张图片

黑马学ElasticSearch(三)_第47张图片

黑马学ElasticSearch(三)_第48张图片

你可能感兴趣的:(elasticsearch,大数据)