Upgrading from 4.1.x to 4.2.x
本节介绍从 4.1.x 版到 4.2.x 版的重大更改,以及如何使用新引入的功能替代已删除的功能。
Removals
版本 4.0 中弃用了 @Score 注解(用于在实体中设置得分返回值),现已将其移除。得分值已返回在封装返回实体的 SearchHit 实例中。
已移除 org.springframework.data.elasticsearch.ElasticsearchException 类。剩余用法已替换为 org.springframework.data.mapping.MappingException 和 org.springframework.dao.InvalidDataAccessApiUsageException。
已移除弃用的 ScoredPage、ScrolledPage、@AggregatedPage 和其实现。
已移除弃用的 GetQuery 和 DeleteQuery。
已移除 ReactiveSearchOperations 和 ReactiveDocumentOperations 中的弃用 find 方法。
Breaking Changes
RefreshPolicy
Enum package changed
在 4.1 版中,可以通过在自定义配置类中覆盖 AbstractReactiveElasticsearchConfiguration.refreshPolicy() 方法来配置 ReactiveElasticsearchTemplate 的刷新策略。此方法的返回值是 org.elasticsearch.action.support.WriteRequest.RefreshPolicy 类的实例。
现在,配置必须返回 org.springframework.data.elasticsearch.core.RefreshPolicy。此枚举具有相同的值,并触发与之前相同的行为,因此只需调整 import 语句。
Refresh behaviour
如果写请求上的刷新策略不为 null,则 ElasticsearchOperations 和 ReactiveElasticsearchOperations 现将显式使用模板中设置的 RefreshPolicy。如果刷新策略为 null,则不会执行任何特殊操作,因此会使用集群默认值。在此版本之前,ElasticsearchOperations 一直在使用集群默认值。
当刷新策略为 null 时,ElasticsearchRepository 和 ReactiveElasticsearchRepository 的提供实现将执行显式刷新。这与以前版本的中的行为相同。如果设置了刷新策略,则它也将被存储库使用。
Refresh configuration
在按照 Elasticsearch Clients中通过使用 ElasticsearchConfigurationSupport、AbstractElasticsearchConfiguration`或 `AbstractReactiveElasticsearchConfiguration`的描述配置 Spring Data Elasticsearch 时,刷新策略将初始化为 `null。之前,响应式代码会将此初始化为 IMMEDIATE,现在,响应式代码和非响应式代码表现相同。