前言

在前面几篇文章中演示ES安装时对外暴露有两个端口,一个是9200,一个是9300,这里9300是一个TCP端口,ES集群环境下也是通过9300端口通信的,是长连接的形式通信的,这里不推荐使用SpringBoot操作9300端口通信,其原因有两个,
第一个:是由于SpringBoot的版本不同,整合的ES版本也不同,而且最新的SpringBoot也没整合到7.X版本,只整合到6.X.X,那么版本不适配就会倒是语法问题
第二点:是ES 官方在7.X版本就已经不建议使用9300端口了,将在8.X废弃9300端口

所以这里SpringBoot整合ES是采用9200端口操作
这里操作9200http的方式有很多种方式
1.JestClient:不是官方提供的,更新很慢!
2.RestTemplate:模拟发Http请求,ES很多请求方式需要自己封装,比较麻烦
3.HttpClient:这个也是一样的
这里只要是能发http请求那么都是可以操作ES9200端口的
这些方式都需要自己封装,比较麻烦,不是很友好,所以这里使用ES官方提供的Elasticsearch-Rest-Client,他封装好了ES操作,API层次分明,上手简单,而且ES版本更新这个框架可更新!不用担心版本不匹配问题!!!

开始整合

1.进入官网

​ES官网地址​

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_02


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_elasticsearch_03


我们这里使用高阶的方式,这样更加友好简洁2.创建SpringBoot项目导入依赖

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_elasticsearch_04


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_elasticsearch_05


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_06


3.编写配置

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring_07


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_08


编写配置类

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_elasticsearch_09


4.编写测试案例

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_elasticsearch_10


连接成功

请求设置项设置

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_封装_11


现在我们的ES是没有加安全检验的,当加了安全校验后SpringBoot项目向ES服务器发送请求时就需要进行身份验证,那么所有请求到达ES是都要在请求头里加上身份信息

官方文档有介绍

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_12


SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_13


官方建议将RequestOptions做成单实例的,以后的所有对ES的请求都能共享使用这个实例

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_封装_14

API调用

1.添加一条数据

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring boot_15


这一步启动会有异常,这是由于SpringBoot对ES的版本定义过了,所以这里还需要将parent中的ES版本修改

修改前

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring_16


报错信息!!!

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring_17


解决方案

<elasticsearch.version>7.4.2</elasticsearch.version>

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_spring_18


启动查看测试结果

SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client_封装_19


运行成功!!!