es7.x的客户端连接api以及Respository与template的区别
目录
一 es7.x的连接
1.1 版本说明
1.2 es7.17.x以下
1.2 es7.17.x以上
1.2.1 方式1 使用 Spring Data Elasticsearch(官方集成)
1.2.2 手动配置 Elasticsearch REST Client
二 Repository与elasticsearchTemplate的区别
2.1区别
2.2 相同点
2.3 应用场景
2.4 版本影响
三 springdata-es中日期格式
3.1 日期格式
3.2 其他格式的日期
一 es7.x的连接
1.1 版本说明
-
Spring Boot 2.7.x + ES 7.17.x:使用
spring-data-elasticsearch:4.4.x
-
Spring Boot 3.x + ES 8.x:API 有重大变化,需使用新的
@Document
和日期处理方式
1.2 es7.17.x以下
1.版本说明
2.springdata-es版本
3.配置
4.客户端
5.实体类
6.repository
7.测试应用
1.3 es7.17.x以上
1.3.1 方式1 使用 Spring Data Elasticsearch(官方集成)
1.pom中添加依赖
2. 配置连接参数:重大改变,之前es版本的配置的端口都是9300
3.创建实体类
4.定义repository
5.注入使用 Repository
1.3.2 手动配置 Elasticsearch REST Client
适用场景:需要直接操作 ES 原生 API、自定义高级配置
依赖:elasticsearch-rest-high-level-client
(已废弃)或 elasticsearch-java
(官方推荐)
1.添加依赖
2.配置配置客户端 Bean
3.使用客户端操作 ES
总结:
二 Repository与elasticsearchTemplate的区别
2.1区别
在 Spring Data Elasticsearch 中,Repository
和 ElasticsearchTemplate
是两个核心组件
2.2 相同点
1.Repository 底层依赖 Template
实际上,Repository
的默认实现(如 SimpleElasticsearchRepository
)内部使用了 ElasticsearchTemplate
执行操作。
2.关系链:
Repository
接口 → ElasticsearchRepository
→ SimpleElasticsearchRepository
→ 调用 → ElasticsearchTemplate
2.3 应用场景
2.4 版本影响
-
Spring Data Elasticsearch 4.x+:
ElasticsearchTemplate
已标记为过时,推荐使用ElasticsearchOperations
接口(实现类为ElasticsearchRestTemplate
)。 -
Repository 增强:
新版本支持更灵活的@Query
注解和自定义 Repository 实现。
三 springdata-es中日期格式
3.1 日期格式
在 Spring Data Elasticsearch 中,DateFormat.date_hour_minute_second 定义的日期格式为:
yyyy-MM-dd'T'HH:mm:ss
如下: