👉 这是一个或许对你有用的社群
🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:
《项目实战(视频)》:从书中学,往事中“练”
《互联网高频面试题》:面朝简历学习,春暖花开
《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题
《精进 Java 学习指南》:系统学习,互联网主流技术栈
《必读 Java 源码专栏》:知其然,知其所以然
👉这是一个或许对你有用的开源项目
国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。
功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:
Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本
来源:blog.csdn.net/qq_63519395
/article/details/136100825
在现代应用程序中,对于大量数据的高效管理和快速检索是至关重要的。Elasticsearch(以下简称ES)作为一款开源的全文搜索引擎,为开发者提供了强大而灵活的搜索解决方案。
本文将介绍如何通过Spring Boot框架整合Elasticsearch,实现高效的全文搜索功能。
创建SpringBoot项目
首先,在你的开发环境中创建一个新的Spring Boot项目。你可以选择使用Spring Initializr(https://start.spring.io/)进行项目初始化,选择所需的依赖和项目设置。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
项目地址:https://github.com/YunaiV/ruoyi-vue-pro
视频教程:https://doc.iocoder.cn/video/
添加Elasticsearch依赖
在项目的pom.xml文件中,添加Elasticsearch客户端库的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
这个依赖将引入Spring Data Elasticsearch,使得在Spring Boot应用中更容易地使用Elasticsearch。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
项目地址:https://github.com/YunaiV/yudao-cloud
视频教程:https://doc.iocoder.cn/video/
配置Elasticsearch连接
在application.properties文件中,配置Elasticsearch连接信息:
spring:
data:
elasticsearch:
cluster-nodes: localhost:9200
确保你的Elasticsearch实例在本地运行,并监听在默认端口9200上。
创建实体类
定义一个简单的实体类,用于映射到Elasticsearch索引中的文档。例如,如果你要存储文档的标题和内容,可以创建如下类:
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "documents", type = "document")
public class DocumentEntity {
@Id
private String id;
private String title;
private String content;
// 省略构造函数和getter/setter方法
}
创建Elasticsearch Repository
使用Spring Data Elasticsearch提供的ElasticsearchRepository接口,创建一个用于与Elasticsearch进行交互的Repository:
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface DocumentRepository extends ElasticsearchRepository<DocumentEntity, String> {
// 可以添加自定义的查询方法
}
编写Service层
创建一个Service类,用于封装业务逻辑,调用Repository层进行数据操作:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DocumentService {
@Autowired
private DocumentRepository documentRepository;
public List<DocumentEntity> searchDocuments(String keyword) {
// 可以根据业务需求调用Repository中的方法进行搜索
return documentRepository.findByTitleOrContent(keyword, keyword);
}
public void saveDocument(DocumentEntity document) {
documentRepository.save(document);
}
}
创建Controller层
编写一个Controller类,处理来自前端或其他服务的HTTP请求,并调用Service层的方法:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/documents")
public class DocumentController {
@Autowired
private DocumentService documentService;
@GetMapping("/search")
public List<DocumentEntity> searchDocuments(@RequestParam String keyword) {
return documentService.searchDocuments(keyword);
}
@PostMapping("/add")
public void addDocument(@RequestBody DocumentEntity document) {
documentService.saveDocument(document);
}
}
测试
启动你的Spring Boot应用程序,并使用Postman或其他工具测试搜索和添加文档的功能。
总结
通过这个简单的示例,你已经成功地将Elasticsearch集成到了Spring Boot应用程序中。这使得你能够轻松地实现全文搜索功能,提升了应用程序对大量数据的管理和检索效率。当然,根据具体业务需求,你还可以进一步优化和扩展这个基础架构,使用Elasticsearch提供的更高级功能。
希望这篇文章能够帮助你在Spring Boot项目中利用Elasticsearch实现强大的全文搜索功能。
欢迎加入我的知识星球,全面提升技术能力。
👉 加入方式,“长按”或“扫描”下方二维码噢:
星球的内容包括:项目实战、面试招聘、源码解析、学习路线。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)