告别数据库模糊查询的低效,基于SpringBoot 3.x + Elasticsearch 8.x构建毫秒级响应的搜索服务!
本文将手把手带你实现 SpringBoot 3.x 与 Elasticsearch 8.x 的深度整合,涵盖从环境搭建、数据索引到复杂查询、高亮显示的完整流程,助你轻松应对海量数据检索挑战。
文章目录
一、为什么选择 Elasticsearch?
- 近实时搜索:数据变更后秒级可见
- 分布式高性能:轻松处理PB级数据
- 相关性评分:智能排序搜索结果
- 丰富查询语法:支持全文、模糊、地理空间等查询
二、环境准备
Elasticsearch 8.x
docker run -d --name es8 -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \ docker.elastic.co/elasticsearch/elasticsearch:8.11.1
SpringBoot 3.1+ (JDK 17+)
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.5</version> </parent>
三、核心依赖配置
<dependencies>
<!-- Spring Data Elasticsearch -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- 官方Java Client -->
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.11.1</version>
</dependency>
</dependencies>
配置application.yml:
spring:
elasticsearch:
uris: https://localhost:9200 # 注意8.x默认开启SSL
username: elastic
password: your_password # 启动时生成的密码
四、数据建模与索引映射
1. 实体类注解
@Document