Spring 整合 Elasticsearch
Spring Boot整合Elasticsearch的基本步骤如下:
- 添加依赖:在
pom.xml
中添加Spring Data Elasticsearch和Elasticsearch客户端的依赖。
<dependencies>
<!-- Spring Data Elasticsearch -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- Elasticsearch客户端 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.10.2</version> <!-- 请使用适合您Elasticsearch版本的正确版本号 -->
</dependency>
</dependencies>
- 配置Elasticsearch:在
application.properties
或application.yml
中配置Elasticsearch的连接信息。
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.elasticsearch.rest.uris=http://localhost:9200
- 创建Repository接口:继承
ElasticsearchRepository
。
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface MyElasticsearchRepository extends ElasticsearchRepository<MyEntity, String> {
// 自定义查询方法
}
- 实体类映射:使用
@Document
注解标记实体类,用@Id
注解标记主键。
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "myindex")
public class MyEntity {
@Id
private String id;
// 其他属性及getter/setter
}
- 使用Repository:在服务中注入
MyElasticsearchRepository
,使用其提供的方法进行操作。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MyService {
@Autowired
private MyElasticsearchRepository repository;
public MyEntity getById(String id) {
return repository.findById(id).orElse(null);
}
public void save(MyEntity entity) {
repository.save(entity);
}
// 其他方法...
}
以上代码提供了一个简单的Spring Boot整合Elasticsearch的例子。根据具体需求,您可能需要添加更多的配置和服务方法。
评论已关闭