# springboot-es-cluster-init **Repository Path**: wwz95_admin/springboot-es-cluster-init ## Basic Information - **Project Name**: springboot-es-cluster-init - **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-03-29 - **Last Updated**: 2025-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: ElasticSearch, SpringBoot, Java, search ## README # Elasticsearch 测试项目 这是一个Spring Boot应用程序,用于连接Elasticsearch集群并演示如何创建索引、加载测试数据和查询数据。 ## 项目架构 - Spring Boot 3.2.3 - Java 17 - Elasticsearch 7.10.1 - Elasticsearch REST High Level Client ## 功能特性 - 连接到Elasticsearch集群(支持多节点配置) - 自动创建索引并加载测试数据 - REST API用于查询和创建数据 ## 配置说明 配置文件位于`src/main/resources/application.yml`: ```yaml elasticsearch: host: localhost # ES主机地址 port: 9200 # 主端口 port1: 9201 # 第二个节点端口 port2: 9202 # 第三个节点端口 # username: elastic # 如果需要身份验证 # password: yourpassword ``` ## 索引结构 本项目使用的索引结构(`my_index.json`): ```json { "mappings": { "properties": { "age": { "type": "integer" }, "created_at": { "type": "date", "format": "yyyy-MM-dd" }, "name": { "type": "text" } } }, "settings": { "index": { "number_of_shards": "3", "number_of_replicas": "2" } } } ``` ## API 端点 ### 查询所有人员 ``` GET /api/persons ``` ### 搜索人员(按名称和年龄范围) ``` GET /api/persons/search?name=张三&minAge=25&maxAge=40 ``` 参数说明: - `name`: 可选,根据名称搜索 - `minAge`: 可选,最小年龄 - `maxAge`: 可选,最大年龄 ### 使用GET请求快速添加人员 ``` GET /api/persons/add?name=张三&age=28&createdAt=2024-07-10 ``` 参数说明: - `name`: 必填,人员姓名 - `age`: 必填,人员年龄 - `createdAt`: 可选,创建日期(格式:yyyy-MM-dd),不填则使用当前日期 返回示例: ```json { "success": true, "id": "AbCdEf123", "message": "Person added successfully", "person": { "name": "张三", "age": 28, "createdAt": "2024-07-10" } } ``` ### 创建单个人员 ``` POST /api/persons Content-Type: application/json { "name": "赵明", "age": 30, "createdAt": "2024-07-01" } ``` ### 批量创建人员 ``` POST /api/persons/bulk Content-Type: application/json [ { "name": "李华", "age": 28, "createdAt": "2024-07-01" }, { "name": "王芳", "age": 32, "createdAt": "2024-07-02" } ] ``` ## 运行说明 1. 确保您的Elasticsearch集群已启动并可通过配置的端口访问 2. 构建并运行应用程序: ```bash mvn spring-boot:run ``` ## 测试数据 应用程序启动时会自动加载以下测试数据: - 10条包含名称、年龄和创建日期的记录 - 测试数据位于`src/main/resources/test_data.json` 如果需要添加更多测试数据,可以: 1. 修改`test_data.json`文件 2. 使用API端点创建新记录