從 4.1.x 升級到 4.2.x

本節描述了從版本 4.1.x 到 4.2.x 的重大變更,以及如何用新引入的功能替換已刪除的功能。

棄用

@Document 引數

@Document 註解中與索引設定相關的引數(useServerConfigurationshardsreplicasrefreshIntervallindexStoretype)已移至 @Setting 註解。在 @Document 中使用仍然可能,但已被棄用。

移除

用於在實體中設定得分返回值的 @Score 註解在 4.0 版本中已被棄用,現已移除。得分值將在封裝返回實體的 SearchHit 例項中返回。

org.springframework.data.elasticsearch.ElasticsearchException 類已移除。其餘用法已替換為 org.springframework.data.mapping.MappingExceptionorg.springframework.dao.InvalidDataAccessApiUsageException

已棄用的 ScoredPageScrolledPage@AggregatedPage 及其實現已被移除。

已棄用的 GetQueryDeleteQuery 已被移除。

已棄用的 ReactiveSearchOperationsReactiveDocumentOperations 中的 find 方法已移除。

重大變更

RefreshPolicy

列舉包已更改

在 4.1 中,可以透過在自定義配置類中重寫方法 AbstractReactiveElasticsearchConfiguration.refreshPolicy() 來配置 ReactiveElasticsearchTemplate 的重新整理策略。此方法的返回值是 org.elasticsearch.action.support.WriteRequest.RefreshPolicy 類的例項。

現在配置必須返回 org.springframework.data.elasticsearch.core.RefreshPolicy。此列舉具有相同的值並觸發與以前相同的行為,因此只需調整 import 語句。

重新整理行為

如果重新整理策略不為 null,ElasticsearchOperationsReactiveElasticsearchOperations 現在會明確使用在模板上設定的 RefreshPolicy 進行寫入請求。如果重新整理策略為 null,則不執行任何特殊操作,因此使用叢集預設值。在此版本之前,ElasticsearchOperations 始終使用叢集預設值。

當重新整理策略為 null 時,ElasticsearchRepositoryReactiveElasticsearchRepository 的提供實現將執行顯式重新整理。這與以前版本的行為相同。如果設定了重新整理策略,則儲存庫也將使用它。

重新整理配置

當按照 Elasticsearch 客戶端 中描述的方式,透過使用 ElasticsearchConfigurationSupportAbstractElasticsearchConfigurationAbstractReactiveElasticsearchConfiguration 配置 Spring Data Elasticsearch 時,重新整理策略將被初始化為 null。以前,反應式程式碼將其初始化為 IMMEDIATE,現在反應式和非反應式程式碼顯示相同的行為。

方法返回型別

接受 Query 的刪除方法

反應式方法以前返回一個帶有刪除文件數量的 Mono<Long>,非反應式版本是 void。它們現在返回一個 Mono<ByQueryResponse>,其中包含關於已刪除文件和可能發生的錯誤的更詳細資訊。

multiget 方法

以前,非反應式實現的 multiget 實現只在 List<T> 中返回找到的實體,反應式實現的則在 Flux<T> 中返回。如果請求包含未找到的 ID,則無法獲取這些 ID 缺失的資訊。使用者需要比較返回的 ID 和請求的 ID,以找出哪些缺失。

現在,multiget 方法為每個請求的 ID 返回一個 MultiGetItem。這包含有關失敗(如不存在的索引)的資訊,以及該項是否存在(如果存在,則包含在 `MultiGetItem` 中)的資訊。

© . This site is unofficial and not affiliated with VMware.