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

使用Springboot整合Elasticsearch

全文搜索引擎

全文搜索引擎是目前广泛应用的主流搜索引擎,也称为全文检索。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

Springboot整合Elasticsearch:

步骤:

  1. 创建一个SpringBoot工程,选择以下模块:Lombok、Web、Spring Data Elasticsearch

  2. 编辑application.yml文件

spring:elasticsearch:uris: http://localhost:9200

3.基本操作

使用Spring Data Elasticsearch提供的工具类:ElasticsearchRestTemplate

常用注解:

  • @Document 标记实体类为文档对象

  • @Id 标记为文档id

  • @Field 标记为文档字段

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "student") //标记实体类为文档对象,并指定索引名称
public class Student implements Serializable {@Id@Field(type = FieldType.Keyword) //标记为文档id,不分词private Integer id;@Field(type = FieldType.Text) // 标记为文档字段,分词private String name;@Field(type = FieldType.Integer)  //标记为文档字段,不分词private Integer age;@Field(type = FieldType.Text)private String sex;@Field(type = FieldType.Text)private String school;
}

编写创建索引Controller:

@RestController
@RequiredArgsConstructor
@RequestMapping("index")
public class IndexController {private final ElasticsearchRestTemplate restTemplate;/*** 创建索引*/@GetMapping("/create")public String create(){IndexOperations indexOperations = restTemplate.indexOps(Student.class);indexOperations.create();return "OK!";}
}

编写存入,并且获取文档Controller

@RestController
@RequiredArgsConstructor
@RequestMapping("doc")
public class DocController {private final ElasticsearchRestTemplate restTemplate;@GetMapping("/create")public String create(){restTemplate.save(new Student(1,"zhangsan",18,"男","Beijing"));return "success……";}@GetMapping("/batch")public String batch(){ArrayList<Student> list = new ArrayList<>();list.add(new Student(2,"Lisi",19,"男","北京大学"));list.add(new Student(3,"Wanger",29,"男","清华大学"));list.add(new Student(4,"Mazi",39,"男","本稻田大学"));list.add(new Student(5,"Waibozi",15,"女","东京大学"));list.add(new Student(6,"Yuzhanao",18,"男","北京大学"));restTemplate.save(list);return "batch====>success……";}@RequestMapping("/{id}")public Student findById(@PathVariable Integer id){Student student = restTemplate.get(id.toString(),Student.class);return student;}@RequestMapping("/all")public List<Student> findAll(){SearchHits<Student> hits = restTemplate.search(Query.findAll(),Student.class);System.out.println(hits.getTotalHits()); //总个数List<Student> list = hits.stream().map(hit -> hit.getContent()).collect(Collectors.toList());return list;}
}

相关文章:

使用Springboot整合Elasticsearch

全文搜索引擎 全文搜索引擎是目前广泛应用的主流搜索引擎&#xff0c;也称为全文检索。它的工作原理是计算机索引程序通过扫描文章中的每一个词&#xff0c;对每一个词建立一个索引&#xff0c;指明该词在文章中出现的次数和位置&#xff0c;当用户查询时&#xff0c;检索程序…...

Vue3+Element+TS动态菜单+按钮权限控制实现探索

1.动态获取权限并根据获取权限转换成相对应的router 根据请求获取菜单数据&#xff0c;对菜单数据进行转换&#xff0c;分别进行下面几步&#xff1a; /*** 组件地址前加斜杠处理*/ export function addSlashToRouteComponent(routeList: AppRouteRecordRaw[]) {routeList.fo…...

五款公司源代码加密软件推荐|代码防泄密解决方案

在当今数字化的世界中&#xff0c;源代码的泄露无疑是一场灾难。对于依赖加密软件保护关键信息的企业和个人来说&#xff0c;这种泄露不仅可能导致数据失窃&#xff0c;还可能损害企业的声誉和客户的信任。面对这种严峻的形势&#xff0c;我们迫切需要一种全面而有效的加密软件…...

【spring】Security 密码加密算法

Spring Security 提供了多种密码加密算法&#xff0c;用于在存储用户密码时进行加密&#xff0c;以增强安全性。 查看org.springframework.security.crypto.factory.PasswordEncoderFactories 以下是一些常用的密码加密算法&#xff1a; BCryptPasswordEncoder&#xff1a; 这…...

IO系列(一) -一文带你读懂 java 中的IO流!

一、摘要 说到 IO&#xff0c;相信大家都不陌生&#xff0c;英文全称&#xff1a;Input/Output&#xff0c;即输入/输出&#xff0c;通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。 比如我们常用的SD卡、U盘、移动硬盘等等存储文件的硬件设备&#xff…...

代码随想录算法训练营第六天| 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

哈希表理论基础 [LeetCode] 242. 有效的字母异位词 [LeetCode] 242. 有效的字母异位词 文章解释 [LeetCode] 242. 有效的字母异位词 视频解释 题目: 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出…...

【python】中的可迭代对象、迭代器、生成器

结论 凡是实现了__iter__() 方法的类都称之为可迭代对象&#xff0c;但 __iter__() 方法的返回值只能是迭代器和生成器for 循环的本质是先调用 __iter__() 方法&#xff0c;然后不断调用返回值的 __next__() 方法&#xff0c;直至报出异常 StopIteration&#xff0c;可迭代对象…...

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发 搭建短视频矩阵系统源码的交付步骤可以概括为以下几个关键环节&#xff1a; 1. **系统需求分析**&#xff1a;明确系统需要支持的功能&#xff0c;如短视频的上传、存储、播放、分享、评论、点赞等。 2. **技术选…...

K8s:二进制安装k8s(单台master)

目录 一、安装k8s 1、拓扑图 2、系统初始化配置 2.1关闭防火墙selinx以及swap 2.2设置主机名 2.3在每台主机中添加hosts&#xff0c;做映射 2.4调整内核参数&#xff0c;将桥接的ipv4流量传递到iptables&#xff0c;关闭ipv6 2.4时间同步 3、部署docker引擎&#xff0…...

C++类和对象下——实现日期类

前言 在学习了类和对象的六大成员函数后&#xff0c;为了巩固我们学习的知识可以手写一个日期类来帮助我们理解类和对象&#xff0c;加深对于其的了解。 默认函数 构造函数 既然是写类和对象&#xff0c;我们首先就要定义一个类&#xff0c;然后根据实际需要来加入类的数据与函…...

252 基于MATLAB的自适应差分阈值法检测心电信号的QRS波

基于MATLAB的自适应差分阈值法检测心电信号的QRS波&#xff0c;QRS波群反映左、右心室除极电位和时间的变化&#xff0c;第一个向下的波为Q波&#xff0c;向上的波为R波&#xff0c;接着向下的波是S波。通过GUI进行数据处理&#xff0c;展示心率和QRS。程序已调通&#xff0c;可…...

SSIM(Structural Similarity),结构相似性及MATLAB实现

参考文献 Wang, Zhou; Bovik, A.C.; Sheikh, H.R.; Simoncelli, E.P. (2004-04-01). “Image quality assessment: from error visibility to structural similarity”. IEEE Transactions on Image Processing. 13 (4): 600–612. Bibcode:2004ITIP…13…600W. CiteSeerX 10.…...

第十六章-消费者-PUSH方式(一)

16.1 准备阶段 先从一段官方示例代码开始 public class Consumer {public static void main(String[] args) throws InterruptedException, MQClientException {// 初始化consumer&#xff0c;并设置consumer group nameDefaultMQPushConsumer consumer new DefaultMQPushCo…...

【C++要哮着学】初识C++,什么是C++?什么是命名空间?什么又是缺省函数?

文章目录 前言1、C简介1.1、什么是C1.2、C起源1.3、C发展 2、C关键字&#xff08;C98&#xff09;3、命名空间3.1、命名空间的定义及使用3.2、命名空间的嵌套3.3、命名空间的三种使用方式3.3.1、加命名空间名称及作用域限定符3.3.2、使用using将命名空间中某个成员引入3.3.3、使…...

Lua 数字格式化

在编程中&#xff0c;对数字进行格式化是一项常见的任务&#xff0c;特别是当我们需要在用户界面中显示数据或生成报告时。在 Lua 中&#xff0c;我们可以使用一些简单而有效的函数来实现数字的格式化。在本文中&#xff0c;我们将介绍一个由几个函数组成的小型 Lua 库&#xf…...

Java入门基础学习笔记13——数据类型

数据类型的分类&#xff1a; 基本数据类型 引用数据类型 基本数据类型&#xff1a;4大类8种类型&#xff1a; 定义整形用int&#xff0c;再大的数用long。 package cn.ensource.variable;public class VariableDemo2 {public static void main(String[] args) {//目标&#x…...

使用Docker+Jar方式部署微服务工程(前后端分离)看着一篇就够了

本篇教程的使用到的技术有springboot、springcloud、Nacos、Docker、Nginx部署前后端分离访问的微服务。 部署一下Nacos 首先我们需要在服务器中&#xff08;或者本地部署启动一下Nacos&#xff09;&#xff0c;这里我采用服务器的方式进行部署&#xff0c;这里有一点不一样的…...

红外遥控和LCD1602

26.1.1 红外线简介 人的眼睛能看到的可见光按波长从长到短排列&#xff0c;依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为 0.62&#xff5e;0.76μm&#xff1b;紫光的波长范围为 0.38&#xff5e;0.46μm。比紫光波长还短的光叫紫外线&#xff0c;比红光波长还长的…...

房屋出租管理系统需求分析及功能介绍

房屋租赁管理系统适用于写字楼、办公楼、厂区、园区、商城、公寓等商办商业不动产的租赁管理及租赁营销&#xff1b;提供资产管理&#xff0c;合同管理&#xff0c;租赁管理&#xff0c; 物业管理&#xff0c;门禁管理等一体化的运营管理平台&#xff0c;提高项目方管理运营效率…...

高精度模拟算法

高精度模拟算法 高精度加法 extern string m,n; extern int a[MAX],b[MAX],ans[MAX]; void addition(){int _mmax(m.size(),n.size());reverse(m.begin(),m.end()),reverse(n.begin(),n.end());//转置原字符串for(int i0;i<m.size();i) a[i]m[i]-0;//字符型以ASCII码存储&…...

Quantum ESPRESSO 终极快速入门指南:5天轻松掌握电子结构计算

Quantum ESPRESSO 终极快速入门指南&#xff1a;5天轻松掌握电子结构计算 【免费下载链接】q-e Mirror of the Quantum ESPRESSO repository. Please do not post Issues or pull requests here. Use gitlab.com/QEF/q-e instead. 项目地址: https://gitcode.com/gh_mirrors/…...

8051单片机中断向量号计算与配置详解

1. C51中断向量号计算方法解析在8051单片机开发中&#xff0c;中断处理是最核心的功能之一。作为一名长期使用Keil C51工具链的嵌入式开发者&#xff0c;我经常遇到新手询问如何正确计算中断向量号的问题。这个看似简单的数字背后&#xff0c;其实隐藏着8051架构的设计哲学。1.…...

COMET:基于深度学习的翻译质量评估技术革命

COMET&#xff1a;基于深度学习的翻译质量评估技术革命 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET 在机器翻译技术快速发展的今天&#xff0c;翻译质量评估已成为连接技术研发与实际应用的关键…...

混合强化学习驱动的智能营销决策框架

1. 项目概述&#xff1a;当营销决策遇上“会思考的机器人” 你有没有遇到过这样的场景&#xff1a;市场部刚上线一套新用户分群模型&#xff0c;A/B测试跑了一周&#xff0c;结果发现高价值用户转化率不升反降&#xff1b;或者运营团队精心设计的优惠券发放策略&#xff0c;在季…...

Keil A51汇编器INCDIR参数分隔符问题解析

1. 问题现象与背景解析 最近在使用Keil C51开发工具链中的A51汇编器时&#xff0c;遇到了一个看似简单却令人困惑的报错。当执行以下命令时&#xff1a; A51 ASAMPLE.A51 PRINT(ASAMPLE.LST) INCDIR(H1;H2)系统抛出了致命错误&#xff1a; A51 FATAL ERROR -LINE: C:…...

【Java并发编程】Java虚拟线程与平台线程的区别、虚拟线程调度、适用/不适用场景、在Spring Boot中的集成(2026高频)(附《思维导图》+《面试高频考点清单》)

文章目录Java并发编程&#xff1a;虚拟线程系统性知识体系&#xff08;2026高频&#xff09;一、虚拟线程概述与发展历程1.1 核心定义1.2 发展里程碑1.3 核心价值二、虚拟线程与平台线程的核心区别2.1 本质差异对比表2.2 关键差异详细解释2.2.1 内存模型差异2.2.2 阻塞处理机制…...

UVa 273 Jack Straws

题目分析 本题的题目背景源自一种名为 “Jack Straws\texttt{Jack Straws}Jack Straws” 的游戏&#xff0c;玩家需要从桌上一堆杂乱摆放的塑料或木质 “稻草” 中逐根取出&#xff0c;而不扰动其他稻草。本题不关心游戏过程&#xff0c;只关心一个问题&#xff1a;给定若干根稻…...

基于RK3576开发板的人脸检测算法部署实战:从环境搭建到性能优化

1. 项目概述与核心价值最近在做一个嵌入式视觉项目&#xff0c;需要在一块性能与功耗平衡的板子上跑实时人脸检测。经过一番选型&#xff0c;最终锁定了瑞芯微的RK3576开发板。这板子集成了NPU&#xff0c;对于跑轻量级神经网络模型来说&#xff0c;性价比相当不错。人脸检测作…...

牛客周赛 Round 142 C题及D题题解

首先是C题&#xff1a; 咱们先看题目&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/133790/C 来源&#xff1a;牛客网。 这道题其实特别简单&#xff0c;我们只需要按顺序遍历数组&#xff0c;统计能依次被 1、2、3... 整除的元素数量&#xff0c;即…...

ARM嵌入式开发中DS-5内存优化与JVM调优实战

1. 问题现象与背景分析最近在调试基于ARM架构的嵌入式系统时&#xff0c;遇到了一个棘手的问题&#xff1a;DS-5开发环境中的Eclipse频繁崩溃&#xff0c;控制台反复弹出"JVM terminated"错误提示&#xff0c;有时还会显示"Java was started but exited with re…...