SpringBoot开发——整合 Elasticsearch 实现数据高效搜索

文章目录

  • 一、Elasticsearch 简介
  • 二、Spring Boot 整合 Elasticsearch 的准备工作
    • 1. 安装 Elasticsearch
    • 2. 创建 Spring Boot 项目
    • 3. 添加 Maven 依赖
  • 三、配置 Elasticsearch 连接
  • 四、定义实体类和仓库接口
    • 1. 定义实体类
    • 2. 定义仓库接口
  • 五、实现业务逻辑和控制器
    • 1. 实现业务逻辑
    • 2. 创建控制器
  • 六、测试搜索功能
    • 1. 插入测试数据
    • 2. 编写搜索逻辑
    • 3. 添加搜索端点
    • 4. 测试搜索功能
  • 七、总结

一、Elasticsearch 简介

Elasticsearch 是一个基于 Lucene 的开源搜索和分析引擎,它提供了一个分布式多用户能力的全文搜索引擎,支持 RESTful web 接口。Elasticsearch 以其强大的全文搜索能力、实时分析功能和可扩展性,成为了许多企业和开发者的首选。

二、Spring Boot 整合 Elasticsearch 的准备工作

在开始整合之前,我们需要做一些准备工作:

1. 安装 Elasticsearch

• 可以从 Elasticsearch 的官方网站下载对应版本的安装包,并按照官方文档进行安装和配置。

• 确保 Elasticsearch 服务已经启动,并可以通过浏览器访问http://localhost:9200来验证。

2. 创建 Spring Boot 项目

• 可以使用 Spring Initializr 网站快速生成一个 Spring Boot 项目。

• 在项目生成过程中,记得勾选Spring Data Elasticsearch依赖。

3. 添加 Maven 依赖

• 在项目的pom.xml文件中添加 Spring Data Elasticsearch 的相关依赖。例如:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <version>2.5.1</version> <!-- 请根据实际需求选择合适的版本 -->
</dependency>

三、配置 Elasticsearch 连接

在application.properties或application.yml文件中,配置 Elasticsearch 的连接信息:

# application.properties 示例
spring.elasticsearch.rest.uris=http://localhost:9200

或者:

# application.yml 示例
spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200

四、定义实体类和仓库接口

1. 定义实体类

• 使用@Document注解标记实体类,并指定索引名称和文档类型。

• 使用@Id注解标记实体类的主键字段。

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@Document(indexName = "product")
public class Product {
   

    @Id
    private String id;
    private String name;
    private String description;
    private double price;

    // getters and setters
}

2. 定义仓库接口

• 继承ElasticsearchRepository接口,实现数据的 CRUD 操作。

import org.springframework

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945713.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用uWSGI将Flask应用部署到生产环境

使用uWSGI将Flask应用部署到生产环境&#xff1a; 1、安装uWSGI conda install -c conda-forge uwsgi&#xff08;pip install uwsgi会报错&#xff09; 2、配置uWSGI 在python程序的同一文件夹下创建 uwsgi.ini文件&#xff0c;文件内容如下表。 需要按照实际情况修改文件名称…

集成方案 | Docusign + 蓝凌 EKP,打造一站式合同管理平台,实现无缝协作!

本文将详细介绍 Docusign 与蓝凌 EKP 的集成步骤及其效果&#xff0c;并通过实际应用场景来展示 Docusign 的强大集成能力&#xff0c;以证明 Docusign 集成功能的高效性和实用性。 在当今数字化办公环境中&#xff0c;企业对于提高工作效率和提升用户体验的需求日益迫切。蓝凌…

CMS漏洞靶场攻略

DeDeCMS 环境搭建 傻瓜式安装 漏洞一&#xff1a;通过文件管理器上传WebShel 步骤⼀:访问目标靶场其思路为 dedecms 后台可以直接上传任意文件&#xff0c;可以通过⽂件管理器上传php文件获取webshell 登陆网站后台 步骤二&#xff1a;登陆到后台点击 【核心】 --》 【文件式…

1、Jmeter、jdk下载与安装

1、访问官网&#xff0c;点击下载Jmeter http://jmeter.apache.org/ 2、在等待期间&#xff0c;下载对应的Java https://www.oracle.com/cn/java/technologies/downloads/#jdk23-windows 3、全部下载好&#xff0c;先安装JDK ![在这里插入图片描述](https://i-blog.csdnimg…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 3.1.2 基于注意力的解释&#xff08;Attention-Based Explanation&#xff09; 注意力机制可以揭示输入数据中各个部分之间的关系&#…

【大模型实战篇】Mac本地部署RAGFlow的踩坑史

1. 题外话 最近一篇文章还是在11月30日写的&#xff0c;好长时间没有打卡了。最近工作上的事情特别多&#xff0c;主要聚焦在大模型的预训练、微调和RAG两个方面。主要用到的框架是Megatron-DeepSpeed&#xff0c;后续会带来一些分享。今天的文章主要聚焦在RAG。 近期调研了一系…

使用rknn进行yoloV8部署(C++)

文章目录 RKNN导出ONNX导出RKNNC++部署环境配置参考RKNN RKNN(Rockchip Neural Network)是由 Rockchip(瑞芯微电子)公司开发的深度学习框架,旨在提供高效、优化的神经网络推理(inference)能力,支持各种类型的神经网络模型的加速运行,特别是针对 Rockchip 的 ARM 处理…

linux安装nginxs报错:openssl not found

系统&#xff1a; linux 版本&#xff1a;centOS7 nginx版本&#xff1a;nginx-1.20.2 linux安装nginx时 执行下面命令时报错&#xff1a; ./configure --with-http_stub_status_module --with-http_ssl_module --prefix/usr/local/nginxchecking for OpenSSL library ... not …

AI安全的挑战:如何让人工智能变得更加可信

引言 随着人工智能&#xff08;AI&#xff09;技术在各个领域的广泛应用&#xff0c;尤其是在医疗、金融、自动驾驶和智能制造等行业&#xff0c;AI正在重塑我们的工作和生活方式。从提高生产效率到实现个性化服务&#xff0c;AI带来了前所未有的便利。然而&#xff0c;在享受这…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(四)

文章目录 一、管理员角色功能实现1、添加教师功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、教师管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码下…

医疗设备专网防火墙逻辑编程:构建医疗网络安全防线

一、引言 1.1 医疗设备网络化背景 随着信息技术的飞速发展&#xff0c;医疗设备的智能化与网络化已成为不可阻挡的趋势。从医院内部的信息管理系统&#xff08;HIS&#xff09;、影像归档和通信系统&#xff08;PACS&#xff09;&#xff0c;到临床检验系统&#xff08;LIS&…

金蝶V10中间件的使用

目录 环境准备搭建过程配置修改应用部署 环境准备 Linux内核服务器JDK1.8安装包&#xff1a;AAS-V10.zip程序包&#xff1a;***.war 搭建过程 将安装包上传至服务器opt目录下&#xff0c;官方给定的默认服务主目录为“/opt/AAS-V10/ApusicAS/aas/”&#xff1b;解压安装包(解…

AutoDL服务器深度学习使用过程

前期准备 Xshell,Xftp,Pycharm专业版 step 1:实例开机&#xff08;无卡or有卡&#xff09;&#xff0c;Xshell连接 新建xshell会话&#xff1a; 登录指令格式为&#xff1a; ssh -p 38076 rootregion-1.autodl.com 在ssh -p 38076 rootregion-1.autodl.com命令中&#xff0…

MySQLOCP考试过了,题库很稳,经验分享。

前几天&#xff0c;本人参加了Oracle认证 MySQLOCP工程师认证考试 &#xff0c;先说下考这个证书的初衷&#xff1a; 1、首先本人是从事数据库运维的&#xff0c;今年开始单位逐步要求DBA持证上岗。 2、本人的工作是涉及数据库维护&#xff0c;对这块的内容比较熟悉&#xff…

虚拟机Centos下安装Mysql完整过程(图文详解)

目录 一. 准备工作 1. 设置虚拟机静态IP 2. 卸载Mysql 3. 给CentOS添加rpm源 二. 安装MySQL 1. 安装mysql服务 2. 启动mysql服务 3. 开启MySQL开机自启动 4. 查看mysql服务状态 5. 查看mysql初始密码 6. 登录mysql &#xff0c;修改密码 7. 允许外部访问MySQL数据库…

Git Flow 工作流:保障修改不破坏主功能的完整指南20241230

Git Flow 工作流&#xff1a;保障修改不破坏主功能的完整指南 引言 在团队协作和个人项目中&#xff0c;Git Flow 是一种可靠的分支管理策略。通过清晰的分工和规范的流程&#xff0c;它能有效保障代码改动的安全性&#xff0c;避免修改破坏主功能&#xff0c;同时提高开发效…

数据库基础知识---以MySQL为例

一、什么是MySQL 数据保存在不同的表中&#xff0c;而不是将所有数据放在一个大仓库内 二、特点 开源--免费下载跨平台--可以在多个操作系统进行运行性能好--可以出来大量数据简单--安装配置简单支持多种编程语言--可以与多种编程语言进行无缝集成 三、分类 DDL--数据定义…

【漫话机器学习系列】028.CP

Mallows’ Cp&#xff1a;标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具&#xff0c;用于在一系列候选模型中权衡拟合度和复杂性&#xff0c;帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析&#xff0c;并探讨其应用场景、实现方法、优点与局…

pyqt5 设计pdf 和word文件互相转换小程序

给自己编写一个免费简单的设计pdf 和word文件互相转换小程序&#xff0c;使用pyqt5 做ui设计。 代码如下&#xff1a; # 导入必要的库和模块 from PyQt5 import QtCore, QtWidgets from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog from pdf2docx import …

SQL 实战:基于经纬度的距离计算与位置查询

在位置服务&#xff08;LBS&#xff09;系统中&#xff0c;基于地理位置查询和距离计算是核心功能之一。例如&#xff1a; 查找附近的商铺、加油站或医院。计算两点之间的实际直线距离。筛选出指定范围内的用户或设备位置。 MySQL 提供了多种方式实现地理位置查询&#xff0c…