4.2.x から 4.3.x へのアップグレード
このセクションでは、バージョン 4.2.x から 4.3.x への重大な変更と、削除された機能を新しく導入された機能で置き換える方法について説明します。
Elasticsearch は、 Spring Data Elasticsearch は、API クラスとメソッドで 簡単に置き換えることができないクラスが使用されている場所では、この使用箇所は非推奨としてマークされており、置き換えに取り組んでいます。 |
非推奨
方法を提案する
SearchOperations および ElasticsearchOperations では、引数として org.elasticsearch.search.suggest.SuggestBuilder を受け取り、org.elasticsearch.action.search.SearchResponse を返す suggest メソッドは非推奨になりました。代わりに SearchHits<T> search(Query query, Class<T> clazz) を使用し、SuggestBuilder を含めることができる NativeSearchQuery を渡し、返された SearchHit<T> から提案結果を読み取ります。
ReactiveSearchOperations では、新しい suggest メソッドが Mono<org.springframework.data.elasticsearch.core.suggest.response.Suggest> を返すようになりました。ここでも古いメソッドは非推奨となります。
重大な変更
API からの org.elasticsearch クラスの削除。
org.springframework.data.elasticsearch.annotations.CompletionContextアノテーションでは、プロパティtype()がorg.elasticsearch.search.suggest.completion.context.ContextMapping.Typeからorg.springframework.data.elasticsearch.annotations.CompletionContext.ContextMappingTypeに変更されていますが、使用可能な enum 値は同じです。org.springframework.data.elasticsearch.annotations.Documentアノテーションでは、versionType()プロパティがorg.springframework.data.elasticsearch.annotations.Document.VersionTypeに変更されており、使用可能な enum 値は同じです。org.springframework.data.elasticsearch.core.query.Queryインターフェースでは、searchType()プロパティがorg.springframework.data.elasticsearch.core.query.Query.SearchTypeに変更され、利用可能な enum 値は同じです。org.springframework.data.elasticsearch.core.query.Queryインターフェースでは、timeout()の戻り値がjava.time.Durationに変更されました。もはや
SearchHits<T>`class does not contain the `org.elasticsearch.search.aggregations.Aggregations。代わりに、org.springframework.data.elasticsearch.core.AggregationsContainer<T>クラスのインスタンスが含まれるようになりました。Tは、使用される基礎となるクライアントからの具体的な集計型です。現在、これはorg .springframework.data.elasticsearch.core.clients.elasticsearch7.ElasticsearchAggregationsオブジェクトになります。後で別の実装が利用可能になる予定です。ReactiveSearchOperations.aggregate()関数にも同じ変更が加えられ、Flux<AggregationContainer<?>>を返すようになりました。集約を使用するプログラムは、戻り値を適切なクラスにキャストしてさらに処理するように変更する必要があります。org.elasticsearch.ElasticsearchStatusExceptionをスローしていた可能性のあるメソッドは、代わりにorg.springframework.data.elasticsearch.RestStatusExceptionをスローするようになります。
クエリのフィールドと sourceFilter プロパティの処理
バージョン 4.2 までは、Query の fields プロパティが解釈され、sourceFilter のインクルードリストに追加されていました。これは正しくありませんでした。Elasticsearch ではこれらは異なるものです。これは修正されました。結果として、ドキュメントの _source' and should be changed to use the `sourceFilter からどのフィールドを返すかを指定するために fields を使用することに依存するコードは動作しなくなる可能性があります。
search_type のデフォルト値
Elasticsearch の search_type のデフォルト値は query_then_fetch です。これは現在、Query 実装でもデフォルト値として設定されていますが、以前は dfs_query_then_fetch に設定されていました。
BulkOptions の変更点
org.springframework.data.elasticsearch.core.query.BulkOptions クラスの一部のプロパティの型が変更されました。
timeoutプロパティの型はjava.time.Durationに変更されました。`refreshPolicy` プロパティの型は
org.springframework.data.elasticsearch.core.RefreshPolicyに変更されました。
IndicesOptions 変更
Spring Data Elasticsearch は、org.elasticsearch.action.support.IndicesOptions の代わりに org.springframework.data.elasticsearch.core.query.IndicesOptions を使用するようになりました。