从 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` 方法已被移除。
重大更改
刷新策略
枚举包已更改
在 4.1 中,可以通过在自定义配置类中覆盖 `AbstractReactiveElasticsearchConfiguration.refreshPolicy()` 方法来配置 `ReactiveElasticsearchTemplate` 的刷新策略。此方法的返回值是 `org.elasticsearch.action.support.WriteRequest.RefreshPolicy` 类的实例。
现在配置必须返回 `org.springframework.data.elasticsearch.core.RefreshPolicy`。此枚举具有与以前相同的数值并触发相同的行为,因此只需调整 `import` 语句。
刷新行为
`ElasticsearchOperations` 和 `ReactiveElasticsearchOperations` 现在在写入请求时,如果 `RefreshPolicy` 不为 null,则显式使用在模板上设置的 `RefreshPolicy`。如果刷新策略为 null,则不会执行任何特殊操作,因此将使用集群默认值。在此版本之前,`ElasticsearchOperations` 始终使用集群默认值。
`ElasticsearchRepository` 和 `ReactiveElasticsearchRepository` 的提供的实现将在刷新策略为 null 时执行显式刷新。这与以前版本的行为相同。如果设置了刷新策略,则仓库也将使用它。
刷新配置
当使用 `ElasticsearchConfigurationSupport`、`AbstractElasticsearchConfiguration` 或 `AbstractReactiveElasticsearchConfiguration` 配置 Spring Data Elasticsearch (如 Elasticsearch 客户端 中所述)时,刷新策略将初始化为 `null`。以前,响应式代码将其初始化为 `IMMEDIATE`,现在响应式和非响应式代码显示相同的行为。