SpringBoot整合Elasticsearch
时间: 2024-02-29 08:23:45 浏览: 86
springboot整合Elasticsearch
Spring Boot整合Elasticsearch可以使用Spring Data Elasticsearch,在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
在application.properties配置文件中添加以下配置:
```
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.cluster-name=my-application
spring.data.elasticsearch.cluster-nodes=localhost:9300
```
其中,cluster-name为Elasticsearch集群名称,cluster-nodes为Elasticsearch集群节点地址。
接下来,定义一个实体类,并使用注解标注该实体类对应的索引和类型:
```java
@Document(indexName = "article", type = "news")
public class Article {
@Id
private Long id;
@Field(analyzer = "ik_max_word", searchAnalyzer = "ik_max_word")
private String title;
@Field(analyzer = "ik_max_word", searchAnalyzer = "ik_max_word")
private String content;
// getter/setter
}
```
在定义完实体类后,可以使用ElasticsearchRepository接口定义数据访问层的方法:
```java
public interface ArticleRepository extends ElasticsearchRepository<Article, Long> {
List<Article> findByTitle(String title);
}
```
在服务层中调用ArticleRepository的方法即可进行数据的增删改查操作:
```java
@Service
public class ArticleService {
@Autowired
private ArticleRepository articleRepository;
public void save(Article article) {
articleRepository.save(article);
}
public void delete(Long id) {
articleRepository.deleteById(id);
}
public Article getById(Long id) {
Optional<Article> optional = articleRepository.findById(id);
return optional.isPresent() ? optional.get() : null;
}
public List<Article> getByTitle(String title) {
return articleRepository.findByTitle(title);
}
}
```
以上就是Spring Boot整合Elasticsearch的基本流程。需要注意的是,在使用Spring Data Elasticsearch时,需要根据实际情况配置相应的注解和属性,以保证数据的正确存储和检索。
阅读全文