当前位置: 首页 > 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…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...