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

SpringBoot操作Elasticsearch

SpringBoot操作Elasticsearch

SpringData框架简化Java代码连接ES的过程

官网:https://spring.io/projects/spring-data/

image-20230712214657792

以上列表中都是Spring Data支持连接的数据源

添加依赖

已经添加过了

        <!--添加SpringDataES的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
配置文件信息
# 设置ES所在的地址
spring:elasticsearch:rest:uris: http://172.26.6.53:9200
# 显示ES运行信息,设置debug的日志级别
logging:level:cn:tedu:elasticsearch: debug# Spring Data ES底层一个源码类,也有日志信息输出,单独设置org:elasticsearch:client:RestClient: debug
创建和ES关联的实体类
@Data
@Accessors(chain = true) //开启链式set赋值的功能
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "items")
public class Item implements Serializable {@Id //标记为ES的主键private Long id;@Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")private String title; //商品的名称@Field(type = FieldType.Keyword) //不需要进行切分private String brand;//商品的品牌@Field(type = FieldType.Keyword) //不需要进行切分private String category;//商品的分类@Field(type = FieldType.Double)private Double price; //价格@Field(type = FieldType.Keyword,index = false) //不创建索引private String imgPath; //图片地址
}
持久层
@Repository
public interface ItemRepository extendsElasticsearchRepository<Item,Long> {//继承ElasticsearchRepository接口,就可以使用SpringDataES封装好的增删改查的方法//ElasticsearchRepository<[实体类类型],[实体类主键类型]>}
测试ES
@SpringBootTest
class ElasticsearchApplicationTests {//使用ItemRepository提供的方法@Autowiredprivate ItemRepository itemRepository;//单增@Testpublic void addOne(){Item item = new Item().setId(1L).setTitle("罗技有线鼠标").setBrand("罗技").setCategory("鼠标").setPrice(199.00).setImgPath("1.jpg");//把item对象新增到ES中,使用SpringDataES提供的方法itemRepository.save(item);System.out.println("单增成功!");}//单查@Testpublic void findOne(){//Optional是一个类似包装类的概念,查询的结果封装到这个类型中Optional<Item> optionalItem = itemRepository.findById(1L);System.out.println(optionalItem.get());}//批量新增@Testpublic void addMore(){List<Item> items = new ArrayList<>();items.add(new Item(2L,"雷蛇无线激光鼠标","雷蛇","鼠标",299.00,"2.jpg"));items.add(new Item(3L,"罗技双模鼠标","罗技","鼠标",299.00,"3.jpg"));items.add(new Item(4L,"罗技双模键盘","罗技","键盘",99.99,"4.jpg"));items.add(new Item(5L,"联想超薄笔记本电脑","联想","电脑",4399.00,"5.jpg"));items.add(new Item(6L,"雷蛇有线鼠标","雷蛇","鼠标",399.00,"6.jpg"));items.add(new Item(7L,"燕双飞超级无敌螺旋鼠标","燕双飞","鼠标",999.00,"7.jpg"));itemRepository.saveAll(items);System.out.println("批量新增成功");}//批量查询@Testpublic void findMore(){Iterable<Item> items = itemRepository.findAll();items.forEach(item -> System.out.println(item));}
}

 上一篇文章:如何使用Elasticsearch操作数据库呢?-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/143566446下一篇文章:

相关文章:

SpringBoot操作Elasticsearch

SpringBoot操作Elasticsearch SpringData框架简化Java代码连接ES的过程 官网&#xff1a;https://spring.io/projects/spring-data/ 以上列表中都是Spring Data支持连接的数据源 添加依赖 已经添加过了 <!--添加SpringDataES的依赖--><dependency><groupId&…...

阿里云aliyun gradle安装包下载地址

阿里云 查找你要下载的安装包 macports-distfiles-gradle安装包下载_开源镜像站-阿里云 https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.9-bin.zip 腾讯 https://mirrors.cloud.tencent.com/gradle/ https://mirrors.cloud.tencent.com/gradle/ https…...

【设计模式】创建型设计模式-工厂模式的实现

工厂模式实现 定义例子UML类图理解Java代码实现总结 定义 工厂方法模式定义了一个接口用于创建对象&#xff0c;该模式由子类决定实例化哪个工厂类。该模式把类的实例化推迟到了子类。 例子 通过一个公共的类方法来管理画图对象的创建。 UML类图理解 Java代码实现 定义接口…...

【分布式】CAP理论

CAP定理的核心要点&#xff1a; CAP定理指出&#xff0c;任何一个分布式系统在面对网络分区&#xff08;Partition&#xff09;的情况下&#xff0c;最多只能同时满足以下三个特性中的两个&#xff1a; 一致性&#xff08;Consistency&#xff09;&#xff1a; 所有节点在同一…...

市域社会治理现代化解决方案-2

1. 社会治理现代化背景 市域社会治理现代化旨在通过制度化、科学化、规范化、程序化和精细化的治理体系,实现社会治理能力的提升。该方案强调市一级的统筹协调和资源技术优势,以有效应对新型社会矛盾和风险挑战。 2. 社会治理面临的问题 当前社会治理在实践中存在诸多问题…...

谷歌浏览器的自动翻译功能如何开启

在当今全球化的网络环境中&#xff0c;能够流畅地浏览不同语言的网页是至关重要的。谷歌浏览器&#xff08;Google Chrome&#xff09;提供了一项强大的自动翻译功能&#xff0c;可以帮助用户轻松跨越语言障碍。本文将详细介绍如何开启和使用谷歌浏览器的自动翻译功能&#xff…...

Linux设置socks代理

公司里绝大多数主机已经禁止外网访问&#xff0c;仅保留一台主机设置socks作为代理服务器。如下为对socks这一概念的学习整理 什么是socks 是一种OSI模型下会话层的协议&#xff0c;位于表示层与传输层之间&#xff0c;作用是&#xff1a; exchanges network packets between…...

【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)

& 第四届信号处理与通信技术国际学术会议&#xff08;SPCT 2024&#xff09; 2024 4th International Conference on Signal Processing and Communication Technology 2024年12月27-29日 中国深圳 www.icspct.com 第四届信号处理与通信技术国际学术会议&#x…...

蓝队技术学习

声明&#xff1a; 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文 章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线, 否则后果自负 蓝队技术基础 1.企业网络架构&#xff1a;企业技术和信息团队的管理架构因企业而异。 CIO&#xff08;Chief Informa…...

openpyxl处理Excel模板,带格式拷贝行和数据填入

本文中用openpyxl操作Excell 模板,进行行拷贝和数据填充. 主要涉及单元格格式的拷贝,合并单元格的拷贝,行高和列宽的处理. 将模板表格分为三部分,头部,中间循环填充部分,尾部.模板参数中设置头部高度,循环部分高度,剩余为尾部. 拷贝时先拷贝填充头部 ,然后根据数据循环拷贝填…...

无法在带有 WHM/cPanel 的 Ubuntu 22.04 服务器上安装 PHP 7.x – 缺少软件包

问题 正在使用Ubuntu 22.04设置服务器&#xff0c;并使用WHM/cPanel管理多个帐户和配置。我的目标是在服务器上安装 PHP 7.4&#xff08;或更早的版本&#xff0c;如 PHP 7.3&#xff09;&#xff0c;因为我的一些应用程序与 PHP 8.x 不兼容。问题是&#xff0c;每当我尝试安装…...

数据结构-递归函数的调用栈过程

这道题考察的是递归函数的调用栈过程。 逐步分析程序的执行过程&#xff1a; main() 函数首先被调用&#xff0c;此时栈底是 main() 的信息。main() 函数调用 S(1)&#xff0c;此时 S(1) 的信息被压入栈中&#xff0c;位于 main() 之上。S(1) 函数内部调用 S(0)&#xff0c;因…...

在 WPF 中,如何实现数据的双向绑定?

在 WPF 中&#xff0c;数据绑定是一个非常重要的特性&#xff0c;它允许 UI 与数据源之间自动同步。双向绑定是一种常见的绑定方式&#xff0c;当数据源更新时&#xff0c;UI 会自动更新&#xff1b;同样&#xff0c;当 UI 中的元素&#xff08;如文本框&#xff09;发生改变时…...

pyinstaller 打包 playwright -- 如何将浏览器打包到程序中

start 最近玩了玩 playwright&#xff0c;记录一下遇到的问题。 1. 如何在 python 中使用 安装 pip install playwright安装浏览器驱动 playwright install查看浏览器驱动安装的位置 playwright install --dry-run2. 如何将浏览器打包的程序中 先找到我们使用 pip 安装…...

vue系列=状态管理=Pinia使用

1、Pinia基本概念 1、Pinia向外暴露了几个重要的函数&#xff0c;分别是createPinia、defineStore和storeToRefs 2、pinia有五个核心管理概念&#xff1a; store、store、getters、action、plugins 2、Pinia基本使用 1、安装过程 1、安装pinia插件&#xff1a;npm install pini…...

[HarmonyOS]简单说一下鸿蒙架构

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为公司开发的一款面向全场景的操作分布式系统。它旨在提供一个统一的操作系统平台&#xff0c;支持多种设备&#xff0c;包括智能手机、平板电脑、智能电视、可穿戴设备、智能家居等。鸿蒙架构的设计目标是实现设备之间的无…...

【Python TensorFlow】进阶指南(续篇一)

在前两篇文章中&#xff0c;我们介绍了TensorFlow的基础知识及其在实际应用中的初步使用&#xff0c;并探讨了更高级的功能和技术细节。本篇将继续深入探讨TensorFlow的高级应用&#xff0c;包括但不限于模型压缩、模型融合、迁移学习、强化学习等领域&#xff0c;帮助读者进一…...

机器视觉和计算机视觉的区别

机器视觉和计算机视觉的区别 1、本质上两者是一样的&#xff0c;都是将光信号转换成电信号&#xff0c;然后交给计算机处理&#xff1b; 2、二者侧重点不同&#xff0c;计算机视觉更偏向研究&#xff0c;更前沿&#xff0c;采集到图像后交给计算机进行分析处理&#xff0c;包括…...

RDD 算子全面解析:从基础到进阶与面试要点

Spark 的介绍与搭建&#xff1a;从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交&#xff1a;本地与集群模式全解析-CSDN博客 Spark on YARN&#xff1a;Spark集群模式…...

Vue.js动态组件使用

在 Vue.js 中&#xff0c;动态组件是一种功能强大的特性&#xff0c;它允许你在同一个挂载点根据条件动态地切换不同的组件。这通常通过 Vue 的 <component> 元素和 is 特性来实现。以下是如何在 Vue 3 中使用动态组件的详细指南&#xff1a; 基本用法 定义组件&#xf…...

Node.js后端服务开发:搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口

Node.js后端服务开发&#xff1a;搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口 你是不是遇到过这样的场景&#xff1a;手头有一个很厉害的AI模型&#xff0c;比如能估算图片深度的Lingbot-Depth-Pretrain-ViTL-14&#xff0c;但不知道怎么把它变成一个方便调用的服务&…...

BGE-Reranker-v2-m3为何必须用?RAG幻觉过滤入门必看

BGE-Reranker-v2-m3为何必须用&#xff1f;RAG幻觉过滤入门必看 如果你正在搭建RAG系统&#xff0c;或者已经搭建了但总觉得回答质量时好时坏&#xff0c;经常出现“幻觉”——也就是模型一本正经地胡说八道——那你很可能遇到了一个核心问题&#xff1a;向量检索“搜不准”。…...

别再手写表单了!用Vue3+AI做个自己的低代码设计器,5分钟搞定一个页面

用Vue3AI打造个人专属低代码表单设计器&#xff1a;5分钟解放重复劳动 如果你是一名中后台开发者&#xff0c;每天被各种CRUD表单折磨得焦头烂额&#xff0c;这篇文章就是为你准备的。想象一下&#xff1a;当你接到第100个类似的用户管理表单需求时&#xff0c;不再需要从零开始…...

Joy-Con Toolkit终极指南:快速解锁Switch手柄隐藏功能

Joy-Con Toolkit终极指南&#xff1a;快速解锁Switch手柄隐藏功能 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit是一款专为任天堂Switch手柄设计的开源控制软件&#xff0c;为游戏玩家提供前所…...

ArduinoLog:面向MCU的零开销C++嵌入式日志框架

1. ArduinoLog 项目概述ArduinoLog 是一款专为 Arduino 及兼容嵌入式平台&#xff08;包括 AVR、SAM、ESP8266 等&#xff09;设计的轻量级 C 日志框架。其核心设计哲学是“零运行时开销、零动态内存分配、全编译期可控”&#xff0c;在资源极度受限的微控制器环境中&#xff0…...

TCC性能瓶颈到底卡在哪?:用Arthas+Metrics精准定位4大隐性耗时源并实测压降67%

第一章&#xff1a;TCC性能瓶颈到底卡在哪&#xff1f; TCC&#xff08;Try-Confirm-Cancel&#xff09;模式虽能保障分布式事务的强一致性&#xff0c;但其性能损耗远高于本地事务——根本原因并非网络延迟本身&#xff0c;而是其固有的三阶段协同机制与资源生命周期管理带来的…...

避坑指南:Matplotlib调用LaTeX渲染公式时,你可能会遇到的5个报错及解决方法

Matplotlib与LaTeX公式渲染&#xff1a;5个典型报错排查手册 当你第一次在Matplotlib中启用usetexTrue时&#xff0c;屏幕上突然弹出的红色LaTeX错误信息往往让人手足无措。这不是你代码逻辑的问题&#xff0c;而是两个强大工具在握手时产生的"语言障碍"。本文将带你…...

告别模糊边界!用Monodepth2实战KITTI深度估计,详解自动掩码与最小重投影损失

告别模糊边界&#xff01;用Monodepth2实战KITTI深度估计&#xff0c;详解自动掩码与最小重投影损失 深度估计是计算机视觉领域的一项基础任务&#xff0c;它试图从2D图像中恢复出3D场景的几何信息。在自动驾驶、机器人导航、增强现实等应用中&#xff0c;准确的深度感知至关重…...

增程式混合动力汽车MATLAB_simulink模型(串联)整车建模包括工况选择模型、驾驶员模型(PID控制)、整车工作模式控制模型、发动机模型、电机模型、电池模型、传动系统模型、整车动力学模型。

增程式混合动力汽车MATLAB/simulink模型&#xff08;串联&#xff09;整车建模包括工况选择模型、驾驶员模型&#xff08;PID控制&#xff09;、整车工作模式控制模型、发动机模型、电机模型、电池模型、传动系统模型、整车动力学模型。 此模型比较简单&#xff0c;当SOC低于SO…...

AI排忧解难:让快马智能诊断并解决你的openclaw安装故障

最近在折腾openclaw这个工具时&#xff0c;遇到了不少安装上的坑。从依赖冲突到环境配置错误&#xff0c;每次报错都得花大把时间查资料。后来发现用AI辅助诊断的思路可以大幅提升效率&#xff0c;于是尝试在InsCode(快马)平台上做了个智能诊断脚本&#xff0c;效果意外地好。 …...