從 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,現在反應式和非反應式程式碼顯示相同的行為。