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 now uses org.springframework.data.elasticsearch.core.query.IndicesOptions
instead of org.elasticsearch.action.support.IndicesOptions
.