Spring Boot 整合 Elasticsearch 的核心步骤
Elasticsearch 是一个基于 Lucene 的分布式搜索引擎,常用于全文检索、日志分析等场景。Spring Boot 通过 Spring Data Elasticsearch 模块提供了便捷的集成方式,以下为具体实现方法。
添加依赖配置
在 pom.xml 中添加 Spring Data Elasticsearch 和 Elasticsearch 客户端依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.15.0</version>
</dependency>
配置文件
在 application.yml 中配置 Elasticsearch 服务器地址:
spring:
elasticsearch:
rest:
uris: http://localhost:9200
定义实体类
使用 @Document 注解标记 Elasticsearch 的索引和映射:
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "products")
public class Product {
@Id
private String id;
private String name;
private Double price;
// 省略 getter/setter
}
创建 Repository 接口
继承 ElasticsearchRepository 实现 CRUD 操作:
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
List<Product> findByName(String name);
List<Product> findByPriceBetween(Double min, Double max);
}
使用 RestHighLevelClient
对于复杂查询,可直接使用 Elasticsearch 原生客户端:
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
@Autowired
private RestHighLevelClient client;
public void searchProducts() throws IOException {
SearchRequest request = new SearchRequest("products");
889

被折叠的 条评论
为什么被折叠?



