SpringBoot整合es
时间: 2023-12-24 07:24:19 浏览: 185
SpringBoot整合ES的步骤如下:
1. 在pom.xml文件中添加spring-boot-starter-data-elasticsearch依赖。
2. 进行基础配置,包括指定ES的地址和端口等信息。
3. 创建ElasticsearchTemplate或者ElasticsearchRestTemplate实例,用于操作ES。
4. 在代码中使用ElasticsearchTemplate或者ElasticsearchRestTemplate实例进行ES的操作,例如增删改查等。
需要注意的是,SpringBoot整合ES需要使用Spring Data Elasticsearch模块,该模块提供了对ES的访问和操作支持。同时,ES的版本也需要与Spring Data Elasticsearch模块的版本匹配。
参考代码如下:
1. 添加依赖
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
2. 进行基础配置
```
spring:
elasticsearch:
rest:
uris: http://localhost:9200
```
3. 创建ElasticsearchTemplate或者ElasticsearchRestTemplate实例
```
@Configuration
public class ElasticsearchConfig {
@Bean
public RestHighLevelClient restHighLevelClient() {
return new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http")));
}
@Bean
public ElasticsearchRestTemplate elasticsearchRestTemplate() {
return new ElasticsearchRestTemplate(restHighLevelClient());
}
}
```
4. 在代码中使用ElasticsearchTemplate或者ElasticsearchRestTemplate实例进行ES的操作
```
@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;
public void save(User user) {
IndexQuery indexQuery = new IndexQueryBuilder()
.withObject(user)
.build();
elasticsearchRestTemplate.index(indexQuery, IndexCoordinates.of("user"));
}
public List<User> search(String keyword) {
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchQuery("name", keyword))
.build();
SearchHits<User> searchHits = elasticsearchRestTemplate.search(searchQuery, User.class, IndexCoordinates.of("user"));
return searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList());
}
```
阅读全文