⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 blog.csdn.net/qq_63519395/article/details/136100825 「#看心情」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

在现代应用程序中,对于大量数据的高效管理和快速检索是至关重要的。Elasticsearch(以下简称ES)作为一款开源的全文搜索引擎,为开发者提供了强大而灵活的搜索解决方案。

本文将介绍如何通过Spring Boot框架整合Elasticsearch,实现高效的全文搜索功能。

创建SpringBoot项目

首先,在你的开发环境中创建一个新的Spring Boot项目。你可以选择使用Spring Initializr(https://start.spring.io/)进行项目初始化,选择所需的依赖和项目设置。

添加Elasticsearch依赖

在项目的pom.xml文件中,添加Elasticsearch客户端库的依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

这个依赖将引入Spring Data Elasticsearch,使得在Spring Boot应用中更容易地使用Elasticsearch。

配置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实现强大的全文搜索功能。

文章目录
  1. 1. 创建SpringBoot项目
  2. 2. 添加Elasticsearch依赖
  3. 3. 配置Elasticsearch连接
  4. 4. 创建实体类
  5. 5. 创建Elasticsearch Repository
  6. 6. 编写Service层
  7. 7. 创建Controller层
  8. 8. 测试
  9. 9. 总结