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