Spring Boot整合ElasticSearch8.x
版本选型
Elasticsearch 8 .14.x 对应依赖Spring Data Elasticsearch 5.3.x,对应Spring6 .1.x,Spring Boot版本可以选择3.3.x
引入依赖
<dependency >
<groupId >org.springframework.boot</groupId >
<artifactId >spring-boot-starter -data-elasticsearch </artifactId >
</dependency >
配置ElasticSearch
方式1:yml配置
springelasticsearch:uris: http://localhost:9200connection-timeout: 3s
方式2:@Configuration配置
@Configuration
public class MyESClientConfig extends ElasticsearchConfiguration {
@Override
public ClientConfiguration clientConfiguration() {
return ClientConfiguration .builder().connectedTo ("localhost:9200").build();
}
}
Java代码实现
方式1:使用ElasticsearchRepository
ElasticsearchRepository 是Spring Data Elasticsearch项目中的一个接口,用于简化对Elasticsearch集群的CRUD操作以及其他高级搜索功能的集成。这个接口允许开发者通过声明式编程模型来执行数据持久化操作,从而避免直接编写复杂的REST API调用代码。
创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document (indexName = "employees")
public class Employee {
@Id
private Long id ;
@Field (type= FieldType.Keyword)
private String name;
private int sex;
private int age;
@Field (type= FieldType.Text ,analyzer ="ik_max_word")
private String address ;
private String remark ;
}
实现ElasticsearchRepository接口
该接口是框架封装的用于操作Elastsearch的高级接口
@Repository
public interface EmployeeRepository extends ElasticsearchRepository <Employee , Long> {
List<Employee> findByName (String name );
}
官方文档:
https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/repositories/elasticsearch-repository-queries.html
方式2:使用ElasticsearchTemplate
ElasticsearchTemplate模板类,封装了便捷操作Elasticsearch的模板方法,包括索引/ 映射/ 文档 CRUD 等底层操作和高级操作。
@Autowired
ElasticsearchTemplate elasticsearchTemplate;
从Java Rest Client 7.15.0 版本开始,Elasticsearch 官方决定将RestHighLevelClient 标记为废弃的,并推荐使用新的Java API Client,即ElasticsearchClient. Spring Data ElasticSearch对 ElasticsearchClient做了进一步的封装,成了新的客户端ElasticsearchTemplate
方式3:使用ElasticsearchClient
官网文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.14/getting-started-java.html
更多推荐




所有评论(0)