SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client
前言
在前面几篇文章中演示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.进入官网 我们这里使用高阶的方式,这样更加友好简洁
2.创建SpringBoot项目导入依赖 3.编写配置 编写配置类 4.编写测试案例 连接成功
请求设置项设置
现在我们的ES是没有加安全检验的,当加了安全校验后SpringBoot项目向ES服务器发送请求时就需要进行身份验证,那么所有请求到达ES是都要在请求头里加上身份信息 官方文档有介绍 官方建议将RequestOptions做成单实例的,以后的所有对ES的请求都能共享使用这个实例
API调用
1.添加一条数据 这一步启动会有异常,这是由于SpringBoot对ES的版本定义过了,所以这里还需要将parent中的ES版本修改 修改前 报错信息!!! 解决方案
<elasticsearch.version>7.4.2</elasticsearch.version>
启动查看测试结果 运行成功!!!
