elasticsearch 7.9.1 springboot
时间: 2025-06-01 22:29:31 浏览: 16
### 集成 Elasticsearch 7.9.1 和 Spring Boot
为了实现 Spring Boot 应用程序与 Elasticsearch 7.9.1 的集成,可以按照以下方式完成配置和功能开发。
#### 1. 添加依赖项
在 `pom.xml` 文件中引入必要的 Maven 依赖项来支持 Elasticsearch 客户端连接:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- 如果需要使用 RestHighLevelClient -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.9.1</version>
</dependency>
```
上述代码片段展示了如何添加 Spring Data Elasticsearch 支持以及特定版本的 REST 高级客户端[^1]。
#### 2. 配置文件设置
编辑项目的 `application.properties` 或 `application.yml` 文件以定义 Elasticsearch 连接参数。以下是基于 YAML 格式的配置示例:
```yaml
spring:
elasticsearch:
uris: http://localhost:9200
username: elastic
password: changeme
```
此部分指定了目标 Elasticsearch 实例的位置及其认证信息(如果启用了安全模式)。注意这里的 URI 地址应替换为实际运行中的服务地址[^2]。
#### 3. 创建实体类
假设我们要存储文档类型为 `Book` 的对象,则需先定义对应的 Java 类型映射关系如下所示:
```java
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "books", type = "_doc") // 使用 _doc 是因为自 ES 7.x 起推荐统一该字段名
public class Book {
@Id
private String id;
private String title;
private String author;
public Book() {}
public Book(String id, String title, String author) {
this.id = id;
this.title = title;
this.author = author;
}
// Getters and Setters omitted for brevity...
}
```
这里通过注解声明了一个索引名为 books 的模型结构,并设置了默认分片数和其他元数据属性[^3]。
#### 4. 编写 Repository 接口
利用 Spring Data 提供的功能快速构建 CRUD 操作接口:
```java
import org.springframework.data.repository.CrudRepository;
public interface BookRepository extends CrudRepository<Book, String> {}
```
这样就无需手动编写 SQL 查询语句即可执行基本的数据访问逻辑[^4]。
#### 5. 测试保存与检索记录
最后可以在单元测试或者控制器层调用这些方法验证其有效性:
```java
@Autowired
private BookRepository bookRepository;
@Test
void testSaveAndFindBooks() throws Exception {
Book newBook = new Book(null,"Effective Java","Joshua Bloch");
Book savedBook = repository.save(newBook);
assertNotNull(savedBook.getId());
Optional<Book> foundBookOptional = repository.findById(savedBook.getId());
assertTrue(foundBookOptional.isPresent());
assertEquals("Effective Java",foundBookOptional.get().getTitle());
}
```
以上即完成了整个流程说明,包括项目初始化、环境搭建直至具体业务场景下的编码实践过程^.
---
阅读全文
相关推荐




















