SpringBoot 3.x整合Elasticsearch:从零搭建高性能搜索服务

发布于:2025-08-07 ⋅ 阅读:(16) ⋅ 点赞:(0)

告别数据库模糊查询的低效,基于SpringBoot 3.x + Elasticsearch 8.x构建毫秒级响应的搜索服务!

本文将手把手带你实现 SpringBoot 3.xElasticsearch 8.x 的深度整合,涵盖从环境搭建、数据索引到复杂查询、高亮显示的完整流程,助你轻松应对海量数据检索挑战。


一、为什么选择 Elasticsearch?

  • 近实时搜索:数据变更后秒级可见
  • 分布式高性能:轻松处理PB级数据
  • 相关性评分:智能排序搜索结果
  • 丰富查询语法:支持全文、模糊、地理空间等查询

二、环境准备

  1. 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
    
  2. 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

网站公告

今日签到

点亮在社区的每一天
去签到