黑马学ElasticSearch

Posted dengfengling999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑马学ElasticSearch相关的知识,希望对你有一定的参考价值。

目录:

(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中添加删除测试的方法:

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

以上是关于黑马学ElasticSearch的主要内容,如果未能解决你的问题,请参考以下文章

关于在黑马 SpringCloud 黑马旅游案例中使用 elasticsearch 7.17.9 Java API

Elasticsearch学习笔记-黑马旅游网实践

Nacos源码分析.黑马跟学笔记

黑马学SpringCloud-Gateway

微服务ES使用实战·黑马旅游

完爆面试官!黑马学java学费多少