SpringBoot集成ElasticSearch的四种方式(主要讲解ES官方推荐方式)
- TransportClient:这种方式即将弃用 官方将在8.0版本彻底去除
- Data-Es:Spring提供的封装的方式,由于是Spring提供的,所以每个SpringBoot版本对应的ElasticSearch,具体这么个对应的版本,自己去官网看
- ElasticSearch SQL:将Elasticsearch的
Query DSL
用SQL
转换查询,早期有一个第三方的插件Elasticsearch-SQL,后来随着官方也开始做这方面,这个插件好像就没怎么更新了,有兴趣的可以查看https://www.cnblogs.com/jajian/p/10053504.html - Rest Client:官方推荐使用,所以我们采用这个方式,这个分为两个Low Level REST Client和High Level REST Client,Low Level REST Client是早期出的API比较简陋了,还需要自己去拼写
Query DSL
,High Level REST Client使用起来更好用,更符合面向对象的感觉,我们下面使用High Rest Client
注意:我使用的是ES7.6.1版本,等会pom文件依赖时,版本必须与之对应
1.创建Maven项目
2.导入pom依赖
<dependencies>
<!--SpringBoot集成Es的包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!--springbootweb包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--test测试包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--json序列化包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.15</version>
</dependency>
</dependencies>
pom导包完成后、需要点开Maven查看引入的elasticsearch-rest-high-level-client的版本是否与你的ElasticSearch版本一致
如果不一致需要自己去控制版本(如下代码)
<properties>
<java.version>1.8</java.version>
<!--这里是你的es的版本-->
<elasticsearch.version>7.6.1</elasticsearch.version>
</properties>
3.SpringBoot项目的启动类编写(忽略)
4.编写配置类(RestHighLevelClient)
// 表示这是一个配置类
@Configuration
public class RestElasticSearchClientConfig {
// 将方法的返回结果交给spring管理
@Bean
public RestHighLevelClient restHighLevelClient(){
// 主机ip和端口号以及协议
RestHighLevelClient restHighLevelClient = new RestHighLevelClient(RestClient.builder(
new HttpHost("localhost", 9200, "http")));
return restHighLevelClient;
}
}
到这里我们RestHighLevelClient的配置就做完了
5.测试(使用RestHighLevelClient的Api)
编写测试类,在类中自动注入RestHighLevelClient对象文章来源:https://www.toymoban.com/news/detail-400313.html
文章来源地址https://www.toymoban.com/news/detail-400313.html
6.RestHighLevelClient的Api使用(关于索引)
6.1 简单索引的创建
// 测试索引的创建(不带mapping,ElasticSearch默认会根据你的添加的文档来创建mapping)
@Test
void testCreateIndex() throws IOException {
// 创建索引的请求
CreateIndexRequest nan_index = new CreateIndexRequest("nan_index");
// client执行请求
CreateIndexResponse response = restHighLevelClient.indices().create(nan_index, RequestOptions.DEFAULT);
System.out.println(response);
}
6.2自定义mapping创建索引
// 带上自定义的mapping来创建索引
@Test
void testCreateMappingIndex() throws IOException {
// 创建索引的请求
CreateIndexRequest indexRequest = new CreateIndexRequest
到了这里,关于Java使用Springboot集成Es官方推荐(RestHighLevelClient)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!