spring boot集成Elasticsearch 7.16.3
环境:Elasticsearch 版本 7.16.3
Elasticsearch for windows下载地址
windows
若依
spring boot版本 2.6.0

pom文件添加
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>8.12.0</version></dependency>
自定义配置类
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;@Configuration
public class ESConfig extends AbstractElasticsearchConfiguration {@Overridepublic RestHighLevelClient elasticsearchClient() {// 设置连接超时和读取超时时间(单位:毫秒)int connectionTimeout = 60000; // 60 秒int readTimeout = 60000; // 60 秒// 创建 RequestConfigRequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectionTimeout).setSocketTimeout(readTimeout).build();// 创建 RestClientBuilderRestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200)).setHttpClientConfigCallback(httpClientBuilder ->httpClientBuilder.setDefaultRequestConfig(requestConfig));// 创建 RestHighLevelClientRestHighLevelClient client = new RestHighLevelClient(builder);return client;}
}
实体类
indexName = “zbinfo” //索引名
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;@Document(indexName = "zbinfo",shards = 1,replicas = 0)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ESZbInfo {@Id@Field(type = FieldType.Keyword)private Long id;@Field(type = FieldType.Long)private Long nid;/** 标题 */@Field(type = FieldType.Text)private String title;@Field(type = FieldType.Text)private String content;
}
创建操作的Repository
import com.dataDemo.system.domain.ESZbInfo;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;@Repository
public interface ESZbInfoRepstitory extends ElasticsearchRepository<ESZbInfo, String> {}
操作CRUD
@Autowiredprivate ESZbInfoRepstitory esZbInfoRepstitory;@Autowiredprivate ElasticsearchOperations elasticsearchOperations;//批量插入
public void insertEsZbInfo(){List<ZbInfoTxy> list= zbInfoTxyService.selectZbInfoTxyListLocal(new ZbInfoTxy());Integer count = 0;List<ESZbInfo> lists = new ArrayList<>();if(list.size() != 0){for(ZbInfoTxy zbInfoTxy:list){System.out.println("数量----"+count+"-----date---"+ DateUtils.getTime());ESZbInfo zbInfo = new ESZbInfo();zbInfo.setId(zbInfoTxy.getNid());zbInfo.setTitle(zbInfoTxy.getTitle()); zbInfo.setContent(zbInfoTxy.getContent());lists.add(zbInfo);count++;}}//批量插入方法esZbInfoRepstitory.saveAll(lists);}//单个插入esZbInfoRepstitory.save(new ZbInfoTxy ());//删除public void deleteEsAll(){System.out.println("删除全部:");esZbInfoRepstitory.deleteAll();}//查询 --根据关键词查询public void selectEsZbInfo(String title){System.out.println("根据关键词查询:");/*** //单条件模糊查询* NativeSearchQuery query = new NativeSearchQueryBuilder()* .withQuery(QueryBuilders.matchPhraseQuery("title", title))* .build();** //多条件匹配查询* NativeSearchQuery query = new NativeSearchQueryBuilder()* .withQuery(QueryBuilders.boolQuery()* .must(QueryBuilders.matchPhraseQuery("title", title))* .must(QueryBuilders.matchQuery("city", 98)))* .build();** //检索一个字段在两个字段中出现过的* NativeSearchQuery query = new NativeSearchQueryBuilder()* .withQuery(QueryBuilders.boolQuery()* .must(QueryBuilders.multiMatchQuery(title, "title", "content")))* .build();*/NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery("title", title)).must(QueryBuilders.matchQuery("city", 98))).build();SearchHits<ESZbInfo> searchHits = elasticsearchOperations.search(query, ESZbInfo.class);List<ESZbInfo> list = searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList());if(list.size() != 0){for(ESZbInfo esZbInfo:list){System.out.println(esZbInfo);}}}//根据id查询public void selectEsById(String id){Optional<ESZbInfo> optionalById = this.esZbInfoRepstitory.findById(id);System.out.println("单个查询---"+optionalById);}
//查询es状态
http://localhost:9200/_cluster/health
//查询索引的zbinfo映射字段
http://localhost:9200/zbinfo/_mapping
如果插入es的数据量过大,可调整Elasticsearch 目录下/config/elasticsearch.yml 配置文件
添加 http.max_content_length: 200mb(可根据需求更改)
然后重启es
相关文章:
spring boot集成Elasticsearch 7.16.3
环境:Elasticsearch 版本 7.16.3 Elasticsearch for windows下载地址 windows 若依 spring boot版本 2.6.0 pom文件添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch<…...
HTML5+CSS3小实例:环绕小球弹性loading动画
实例:环绕小球弹性loading动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge&quo…...
SpringBoot 自定义注解实现操作日志记录
文章目录 前言正文一、项目结构介绍二、核心类2.1 核心注解2.1.1 CLog 日志注解2.1.2 ProcessorBean 处理器bean 2.2 切面类2.3 自定义线程池2.4 工具类2.4.1 管理者工具类 2.5 测试2.5.1 订单创建处理器2.5.2 订单管理者2.5.3 订单控制器2.5.4 测试报文2.5.5 测试结果 附录1、…...
ubuntu常见配置
ubuntu各个版本的安装过程大差小不差,可以参考,ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境,我的话大概就以下内容,后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…...
electron+vue3全家桶+vite项目搭建【27】封装窗口工具类【1】雏形
文章目录 引入思路抽出公共声明文件抽出全局通用数据类型和方法主进程模块1.抽离基础常量2.封装窗口工具类 渲染进程模块测试结果 引入 demo项目地址 可以看到我们之前在主进程中的逻辑全部都塞到index.ts文件中,包括窗口的一些事件处理,handle监听&am…...
从模型到复合AI系统的转变
2023年,大型语言模型(LLM)吸引了所有人的注意力,它可以通过提示来执行通用任务,例如翻译或编码。这自然导致人们将模型作为AI应用开发的主要成分而密切关注,所有人都在想新的LLM将带来什么能力。然而,随着越来越多的开发者开始使用LLM构建,我们认为这种关注正在迅速改变:最先进…...
将仓库A中的部分提交迁移到仓库B中
结论: 使用git format-patchgit am即可实现 使用场景: 例如仓库A这里有5个提交记录,commitid1, commitid2, commitid3, commitid4,commitid5 仓库B想用仓库A中提交的代码,手动改比较慢,当改动较多的时候…...
信息安全技术基础
本博客地址:https://security.blog.csdn.net/article/details/136331705 一、信息安全基础 1、信息安全的基本要素有机密性、完整性、可用性、可控性与可审查性。信息安全的范围包括设备安全、数据安全、内容安全和行为安全。其中数据安全即采取措施确保数据免受未…...
flask知识--01
flask介绍 # python 界的web框架: Django:大而全,使用率较高 :https://github.com/django/django -FastAPI:新项目选择使用它:https://github.com/tiangolo/fastapi -flask:公司一些…...
软考52-上午题-【数据库】-关系模式2
一、关系模式的回顾 见:软考38-上午题-【数据库】-关系模式 二、关系模式 2-1、关系模式的定义 示例: 念法:A——>B A决定B,或者,B依赖于A。 2-2、函数依赖 1、非平凡的函数依赖 如果X——>Y,&a…...
devc++跑酷小游戏3.5.0
本来想搞存档的,失败了,要再学学文件操作的函数。还有一个打印地图的函数,更失败,彻底放弃。最近开学了,游戏不会经常更新,要写作业。昨天写到10点T_T #include<bits/stdc.h> #include<windows.h…...
Redisson限流算法
引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.12.3</version> </dependency>建议版本使用3.15.5以上 使用 这边写了一个demo示例,定…...
GPT与MBR:硬盘分区表格式的革新与区别
概述 在计算机存储领域,硬盘分区是管理数据和操作系统部署的基础。两种广泛使用的分区表格式——MBR(Master Boot Record)和GPT(GUID Partition Table),各自代表了不同的技术阶段和发展需求。本文将详细介…...
机器学习-1
文章目录 前言机器学习基本定义 练习题 前言 在本片开始将为大家介绍机器学习相关的知识点。 机器学习基本定义 夏天,我们通常会去水果店里买西瓜,我们看到一个根蒂蜷缩、敲起来声音浑浊的青绿色的西瓜,我们提着西瓜就去结账了,…...
Stream流详解
当我们对一个集合中的元素进行多次过滤应该怎样做? 下面看一个案例 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新…...
javaweb学习(day05-TomCat)
一、介绍 1 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/ 2 WEB 开发介绍 2.1 WEB 在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源 2.2 Web 资源 WEB 服务器 ( 主机 ) 上供外界访问的 …...
【Unity】构建简单实用的年份选择器(简单原理示范)
在许多应用程序和游戏中,年份选择是一个常见的需求。无论是在日历应用程序中查看事件,还是在历史类游戏中选择时间段,年份选择器都是用户体验的重要组成部分,下面实现一个简易的年份选择器。 一、效果预览: 目录 一、…...
LeetCode 2120.执行所有后缀指令
现有一个 n x n 大小的网格,左上角单元格坐标 (0, 0) ,右下角单元格坐标 (n - 1, n - 1) 。给你整数 n 和一个整数数组 startPos ,其中 startPos [startrow, startcol] 表示机器人最开始在坐标为 (startrow, startcol) 的单元格上。 另给你…...
租赁小程序|租赁系统|租赁软件开发带来高效运营
随着社会的不断发展和科技的不断进步,越来越多的企业开始关注设备租赁业务。设备租赁作为一种短期使用设备的方式,为企业提供了灵活和成本节约的优势。针对设备租赁业务的管理和提升企业竞争力的需求,很多企业选择定制开发设备租赁系统。本文…...
大数据集群管理软件 CDH、Ambari、DataSophon 对比
文章目录 引言工具介绍CDHAmbariDataSophon 对比分析 引言 大数据集群管理方式分为手工方式和工具方式,手工方式一般指的是手动维护平台各个组件,工具方式是靠大数据集群管理软件对集群进行管理维护。本文针对于常见的方法和工具进行比较,帮助…...
Spring AI Alibaba 快速开始:5分钟跑通第一个应用
Spring AI Alibaba 快速开始:5分钟用智谱 GLM 跑通第一个聊天应用 题外话 最近因为有功能有上线,这几天都忙着在整理投产资料。属实是更新不动了,当然还有一个原因就是之前发库存发的太爽了,现在地主家也没有余粮了。之前学完sp…...
XINGLIGHT成兴光 0603 球头正贴 LED 聚光透镜凸头球灯珠 高亮定向指示贴片 LED
XINGLIGHT 0603 球头正贴 LED 产品图 发光颜色 型号 红色 XL-TD1608SURC 黄色 XL-TD1608UYC 普绿 XL-TD1608SYGC 翠绿 XL-TD1608UGC 蓝色 XL-TD1608UBC XINGLIGHT 0603 球头正贴 LED,标准 0603 正装基底 顶部球面透镜一体封装,光线聚焦定向射出、视角集…...
InceptionTime:时间序列分类的深度学习革命——如何在85个数据集上实现SOTA性能
InceptionTime:时间序列分类的深度学习革命——如何在85个数据集上实现SOTA性能 【免费下载链接】InceptionTime InceptionTime: Finding AlexNet for Time Series Classification 项目地址: https://gitcode.com/gh_mirrors/in/InceptionTime 时间序列分类&…...
5分钟从图片到3D实物:开源神器ImageToSTL完全指南
5分钟从图片到3D实物:开源神器ImageToSTL完全指南 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. 项…...
FPGA实战:手把手教你用Vivado例化4个Aurora 8B/10B IP核(共享时钟与复位避坑指南)
FPGA多核Aurora工程实战:从配置到复位的全链路避坑指南 在高速串行通信领域,Xilinx的Aurora 8B/10B协议因其简洁高效而广受欢迎。但当我们需要在单个QUAD内集成多个Aurora通道时,时钟共享与复位时序问题往往成为工程师的"噩梦"。本…...
深入解析前端认证机制:从Cookie到OAuth2.0
1. 从Cookie到Token:前端认证的演进之路 记得我第一次接触网站登录功能时,被Cookie和Session绕得晕头转向。那时候为了弄明白为什么关闭浏览器后需要重新登录,整整花了两天时间调试代码。现在回头看,这些认证机制的演进其实反映了…...
基于Arduino与ESP32-S2的WiFi FTM RTT测距实战:从环境搭建到误差分析
1. WiFi FTM RTT测距技术原理与应用场景 WiFi FTM(Fine Time Measurement)RTT(Round Trip Time)是一种基于IEEE 802.11mc标准的无线测距技术。简单来说,它就像两个人在黑暗房间里通过喊话估算距离——一个人喊"喂…...
Windows 11终极优化指南:如何用Win11Debloat一键打造纯净高效系统
Windows 11终极优化指南:如何用Win11Debloat一键打造纯净高效系统 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...
AntiDupl.NET终极指南:开源图片去重工具完整教程与深度解析
AntiDupl.NET终极指南:开源图片去重工具完整教程与深度解析 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾被电脑中重复的图片文件困扰࿱…...
C#序列化踩坑记:用CogSerializer保存CogToolBlock时,这些细节你注意了吗?
C#序列化踩坑记:用CogSerializer保存CogToolBlock时,这些细节你注意了吗? 在工业视觉开发领域,Cognex的VisionPro套件凭借其强大的图像处理能力成为众多项目的首选。而CogSerializer作为其内置的序列化工具,看似简单的…...
