从 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 语句。
刷新行为
如果刷新策略不为 null,ElasticsearchOperations 和 ReactiveElasticsearchOperations 现在会明确使用在模板上设置的 RefreshPolicy 进行写入请求。如果刷新策略为 null,则不执行任何特殊操作,因此使用集群默认值。在此版本之前,ElasticsearchOperations 始终使用集群默认值。
当刷新策略为 null 时,ElasticsearchRepository 和 ReactiveElasticsearchRepository 的提供实现将执行显式刷新。这与以前版本的行为相同。如果设置了刷新策略,则存储库也将使用它。
刷新配置
当按照 Elasticsearch 客户端 中描述的方式,通过使用 ElasticsearchConfigurationSupport、AbstractElasticsearchConfiguration 或 AbstractReactiveElasticsearchConfiguration 配置 Spring Data Elasticsearch 时,刷新策略将被初始化为 null。以前,反应式代码将其初始化为 IMMEDIATE,现在反应式和非反应式代码显示相同的行为。