本文章介绍,我们将学习如何使用Spring Boot来整合ElasticSearch。
1. 安装ElasticSearch
首先,我们需要安装并启动ElasticSearch。你可以从ElasticSearch官方网站(https://www.elastic.co/downloads/elasticsearch)下载并安装ElasticSearch。安装完成后,使用命令行启动ElasticSearch。
安装好后,点击elasticsearch.bat
启动成功后,在浏览器输入框输入localhost:9200
页面显示:
2. 创建Spring Boot项目
下一步,我们将创建一个Spring Boot项目。你可以使用Spring Initializr(https://start.spring.io/)来快速创建一个基本的Spring Boot项目。
3. 添加ElasticSearch依赖
打开项目的pom.xml文件,并添加以下依赖:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
这样就可以将ElasticSearch的依赖添加到项目中。
4. 配置ElasticSearch连接
在application.properties文件中添加以下配置:
spring:
elasticsearch:
ip: 127.0.0.1
port: 9200
这里配置了ElasticSearch集群的名称和节点。
5. 创建实体类
创建一个实体类,用于表示ElasticSearch中的文档。
@Document(indexName = "articles", type = "article")
public class Article {
@Id
private String id;
private String title;
private String content;
}
这里使用了Spring Data的注解,表明这个实体类对应了ElasticSearch中的"articles"索引下的"article"类型。
6. 创建ElasticSearch仓库
创建一个继承自ElasticsearchRepository的接口,用于与ElasticSearch进行交互。
public interface ArticleRepository extends ElasticsearchRepository<Article, String> {
List<Article> findByTitle(String title);
}
通过继承ElasticsearchRepository接口,我们可以直接使用一些已经实现好的方法来进行文档的增删改查操作。
7. 使用ElasticSearch仓库
在需要使用ElasticSearch的地方注入ArticleRepository,并使用它进行文档操作。
@RestController
public class ArticleController {
@Autowired
private ArticleRepository articleRepository;
@PostMapping("/articles")
public Article addArticle(@RequestBody Article article) {
return articleRepository.save(article);
}
@GetMapping("/articles/{title}")
public List<Article> getArticlesByTitle(@PathVariable String title) {
return articleRepository.findByTitle(title);
}
}
在上面的例子中,我们使用了PostMapping和GetMapping注解来定义了两个接口,分别用于添加和查询文章。在方法中,我们使用了ArticleRepository来操作ElasticSearch中的文档。
8. 测试
启动应用程序,并使用POST和GET请求来测试添加和查询文章的功能。
接口测试:http://localhost:8080/articles
通过访问上述API,我们可以将一篇文章添加到ElasticSearch中,并根据标题查询文章。