本文来说下SpringBoot整合ES实现CRUD操作
文章目录
- 概述
- 项目搭建
- ES简单的crud操作
- 保存数据
- 修改数据
- 查看数据
- 删除数据
- 本文小结
概述
SpringBoot支持两种技术和es交互。一种的jest,还有一种就是SpringData-ElasticSearch。根据引入的依赖不同而选择不同的技术。反正作为spring全家桶,目前是以springdata为主流使用技术。直接导入spring-boot-starter-data-elasticsearch就可以了
项目搭建
由于es对springboot的版本有要求,最好按照官网要求来
es版本
搭建一个springboot程序来测试es的基本使用
引入es 的依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>2.6.6</version>
</dependency>
注意这里要引入springBoot整合es的场景启动器。可以简单看下这个场景启动器里面都有啥依赖:
ES简单的crud操作
配置 application.yml
spring:elasticsearch:rest:uris: http://localhost:9200
创建一个测试的对象,article
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import java.util.Date;@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "article")
public class Article {// 注意id字段是必须的,可以不写注解@Id。@Idprivate String id;private String title;private String content;private Integer userId;private Date createTime;}
实现ElasticsearchRepository接口来实现增删改查操作
import cn.wideth.po.Article;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;/***** 实现ElasticsearchRepository* 接口来实现增删改查操作*/
public interface ArticleRepository extends ElasticsearchRepository<Article, String> {}
说明
下面可以使用这个 ArticleRepository 来操作 ES 中的 Article 数据。
我们这里没有手动创建这个 Article 对应的索引,由 elasticsearch 默认生成。
下面的接口,使用了 Repository 整合 spring boot 对 es 数据进行插入、更新、查询、删除等操作。可以作为一个参考。
保存数据
保存数据
@GetMapping("/save")@ApiOperation("保存数据")public Object save() {Article article = new Article();article.setId("112233");article.setTitle("java");article.setContent("hello world");article.setUserId(22221111);article.setCreateTime(new Date());return articleRepository.save(article);}
查看结果
修改数据
保存数据和修改数据都是save方法,存在相同的id信息,则为修改,不存在则为新增
@GetMapping("/update")@ApiOperation("修改数据")public Object update() {Article article = new Article();// id存在,则为修改article.setId("112233");article.setTitle("java-6");article.setContent("hello world-6");article.setUserId(6666);article.setCreateTime(new Date());return articleRepository.save(article);}
查看结果
查看数据
根据id来查看数据
@GetMapping("/findById")@ApiOperation("根据id获得数据")public Optional<Article> findById(String id) {Optional<Article> article = articleRepository.findById(id);log.info("==========>>>>"+article.toString());return article;}
查看结果
删除数据
删除数据
@GetMapping("/delete")@ApiOperation("删除数据")public void delete(String id) {// 根据 id 删除articleRepository.deleteById(id);}
查看结果
本文小结
本文使用SpringBoot整合ElasticSearch来实现简单的CRUD操作