当前位置: 首页 > news >正文

SpringBoot整合ElasticSearch实现基础的CRUD操作

本文来说下SpringBoot整合ES实现CRUD操作

文章目录

  • 概述
  • spring-boot-starter-data-elasticsearch
  • 项目搭建
  • ES简单的crud操作
    • 保存数据
    • 修改数据
    • 查看数据
    • 删除数据
  • 本文小结


概述

SpringBoot支持两种技术和es交互。一种的jest,还有一种就是SpringData-ElasticSearch。根据引入的依赖不同而选择不同的技术。反正作为spring全家桶,目前是以springdata为主流使用技术。直接导入spring-boot-starter-data-elasticsearch就可以了

在这里插入图片描述


spring-boot-starter-data-elasticsearch

访问网址:https://spring.io/projects/spring-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操作

http://www.lryc.cn/news/286667.html

相关文章:

  • 【PyTorch】记一次卷积神经网络优化过程
  • C++面试宝典第24题:袋鼠过河
  • 2401vim,vim标号
  • Web开发中HTTP请求、响应等相关知识
  • [Android] Android文件系统中存储的内容有哪些?
  • 透明拼接屏在汽车领域的应用
  • “深入理解RabbitMQ交换机的原理与应用“
  • Programming Abstractions in C阅读笔记:p248-p253
  • 面试题目,你对前端工程化的了解
  • 2023年春秋杯网络安全联赛冬季赛 Writeup
  • docker安装Rabbitmq教程(详细图文)
  • java web mvc-05-JSF JavaServer Faces 入门例子
  • yolov8 训练voc数据集
  • Python笔记12-多线程、网络编程、正则表达式
  • X射线中关于高频高压发生器、高清晰平板探测器、大热容量X射线球管、远程遥控系统的解释
  • 【算法】最短路计数(搜索)复习
  • html火焰文字特效
  • Redis双写一致性
  • html+css+javascript实现贪吃蛇游戏
  • 【K8S】Kubernetes 中滚动发布由浅入深实战
  • MSP430仿真器使用常见问题
  • 芯驰E3340软件编译以及更新步骤
  • HCIA——18实验:NAT
  • 在VBA中使用SQL
  • vue项目中使用Element多个Form表单同时验证
  • 自然语言处理--概率最大中文分词
  • k8s-基础知识(Service,NodePort,CusterIP,NameSpace,资源限制)
  • 【腾讯云】您使用的腾讯云服务存在违规信息,请尽快处理
  • 深度学习 Day27——J6ResNeXt-50实战解析
  • 【力扣 50】Pow(x, n) C++题解(数学+递归+快速幂)