从 4.1.x 升级到 4.2.x

本节介绍从版本 4.1.x 到 4.2.x 的重大更改,以及如何将已删除的功能替换为新的引入功能。spring-doc.cadn.net.cn

弃用

@Document参数

@Document与索引设置 (useServerConfiguration,shards.replicas,refreshIntervallindexStoretype) 已移至@Setting注解。用于@Document仍然可能,但已弃用。spring-doc.cadn.net.cn

清除

@Score用于在实体中设置 score 返回值的注释在版本 4.0 中已弃用,并已被删除。 分数值在SearchHit封装返回的实体的实例。spring-doc.cadn.net.cn

org.springframework.data.elasticsearch.ElasticsearchException类已被删除。 其余用法已替换为org.springframework.data.mapping.MappingExceptionorg.springframework.dao.InvalidDataAccessApiUsageException.spring-doc.cadn.net.cn

已弃用的ScoredPage,ScrolledPage @AggregatedPage和 implementations 已被删除。spring-doc.cadn.net.cn

已弃用的GetQueryDeleteQuery已被删除。spring-doc.cadn.net.cn

已弃用的findmethods 从ReactiveSearchOperationsReactiveDocumentOperations已被删除。spring-doc.cadn.net.cn

重大更改

刷新策略

Enum 包已更改

在 4.1 中,可以为ReactiveElasticsearchTemplate通过覆盖AbstractReactiveElasticsearchConfiguration.refreshPolicy()在自定义配置类中。 此方法的返回值是类org.elasticsearch.action.support.WriteRequest.RefreshPolicy.spring-doc.cadn.net.cn

现在,配置必须返回org.springframework.data.elasticsearch.core.RefreshPolicy. 此枚举具有与以前相同的值并触发相同的行为,因此只有importstatement 必须进行调整。spring-doc.cadn.net.cn

刷新行为

ElasticsearchOperationsReactiveElasticsearchOperations现在显式使用RefreshPolicy如果不是 null,则在模板上为 Write Requests 设置 Set 。 如果刷新策略为 null,则不会执行任何特殊作,因此使用集群默认值。ElasticsearchOperations在此版本之前始终使用 cluster default。spring-doc.cadn.net.cn

ElasticsearchRepositoryReactiveElasticsearchRepository将在刷新策略为 null 时执行显式刷新。 这与以前版本中的行为相同。 如果设置了刷新策略,则存储库也将使用该策略。spring-doc.cadn.net.cn

刷新配置

使用 Elasticsearch 客户端中所述配置 Spring Data Elasticsearch 时ElasticsearchConfigurationSupport,AbstractElasticsearchConfigurationAbstractReactiveElasticsearchConfiguration刷新策略将初始化为null. 以前,反应式代码将此初始化为IMMEDIATE,现在响应式和非响应式代码显示相同的行为。spring-doc.cadn.net.cn

方法返回类型

delete 采用 Query 的方法

响应式方法之前返回了一个Mono<Long>随着已删除文档的数量,非反应版本是无效的。现在,它们会返回一个Mono<ByQueryResponse>其中包含有关已删除文档和可能发生的错误的更多详细信息。spring-doc.cadn.net.cn

MultiGet 方法

multiget previousl 的实现仅返回在List<T>对于非响应式实现,在Flux<T>用于反应式实现。如果请求包含未找到的 ID,则这些 ID 缺失的信息不可用。用户需要将返回的 ID 与请求的 ID 进行比较以查找 哪些缺失了。spring-doc.cadn.net.cn

现在,multiget方法返回一个MultiGetItem对于每个请求的 ID。这包含有关失败的信息(如不存在的索引)以及项目是否存在(则它包含在 'MultiGetItem 中)的信息。spring-doc.cadn.net.cn


APP信息