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
,现在,响应式代码和非响应式代码表现相同。