# elasticsearch **Repository Path**: javanoteany/elasticsearch ## Basic Information - **Project Name**: elasticsearch - **Description**: 一个基于Spring Boot的Elasticsearch集成示例项目,展示索引管理、数据同步和搜索功能实现。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-17 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: ElasticSearch ## README # Spring Boot + Elasticsearch 企业应用集成Demo 一个基于Spring Boot的Elasticsearch集成示例项目,展示索引管理、数据同步和搜索功能实现。 ## 项目概述 本项目基于Spring Boot 2.5.15与Elasticsearch 9.0.0客户端构建,演示如何使用官方推荐的`elasticsearch-java`客户端实现: - Elasticsearch连接配置(支持SSL/TLS加密通信) - 索引生命周期管理(创建/删除/文档CRUD) - RESTful搜索接口(支持高亮显示和复杂查询) - 基于Quartz的定时数据同步任务 目标用户:后端开发人员、搜索引擎初学者、企业级应用开发者 ## 技术架构 ``` Client (search.html) → REST API (IndexController / SearchController) → Service (IndexService / SearchService) → Elasticsearch Java Client (9.0.0) → Remote Elasticsearch Cluster ScheduledJob → IndexService → Elasticsearch ``` **设计模式**: - 配置驱动模式(`ElasticSearchConfig`解耦连接细节) - MVC分层架构(控制器→服务层→客户端调用) - 单例模式(Spring管理的Bean) ## 技术栈 - Java 17 - Spring Boot 2.5.15 - Elasticsearch Java Client 9.0.0 - Maven 3.6+ - Lombok 1.18.24 - Jackson 2.17.0 ## 环境要求 1. JDK 17+(Spring Boot 2.5.x要求) 2. Elasticsearch 9.0.0集群(支持单节点模式) 3. Maven 3.6+ 4. IDE需启用Lombok插件和注解处理 ## 配置规范 **Elasticsearch客户端配置**(`ElasticSearchConfig.java`): ```java // 推荐使用elasticsearch-java客户端 ElasticsearchTransport transport = new RestClientTransport( RestClient.builder(new HttpHost("localhost", 9200, "http")), new JacksonJsonpMapper() ); // 配置连接超时和重试策略 .transportOptions(TransportOptions.builder() .connectTimeout(30, TimeUnit.SECONDS) .socketTimeout(50, TimeUnit.SECONDS) .maxRetryTimeout(100, TimeUnit.SECONDS) .build()) ``` **application.yml配置示例**: ```yaml elasticsearch: scheme: http nodes: localhost:9200 # 配置多节点时,逗号分隔“,” # ssl: true # username: elastic # password: your_secure_password ``` ## 快速启动 启动DemoApplication.java启动类 或者运行以下命令 ```bash # 1. 启动Elasticsearch服务(Docker示例) docker run -p 9200:9200 -p 9300:9300 -e discovery.type=single-node -e ES_JAVA_OPTS="-Xms1g -Xmx1g" docker.elastic.co/elasticsearch/elasticsearch:9.0.0 # 2. 构建项目(启用UTF-8编码) mvn clean install -Dfile.encoding=UTF-8 # 3. 运行应用 cd demo mvn spring-boot:run ``` ## 演示示例 ![create_index.png](images/系统.png) 1. 创建索引\索引文档 ![create_index.png](images/索引.png) 3. 搜索文档 ![search.png](images/普通搜索.png) 4. 高亮显示 ![highlight.png](images/高亮搜索.png)