此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Elasticsearch 5.4.0! |
从 4.2.x 升级到 4.3.x
本节介绍从版本 4.2.x 到 4.3.x 的重大更改,以及如何将已删除的功能替换为新的引入功能。
Elasticsearch 正在开发一个新的客户端,它将取代 Spring Data Elasticsearch 还删除或替换了 使用不易替换的类的地方,此用法被标记为已弃用,我们正在努力替换。 |
弃用
建议方法
在SearchOperations
,依此类推ElasticsearchOperations
此外,suggest
方法采用org.elasticsearch.search.suggest.SuggestBuilder
as 参数并返回org.elasticsearch.action.search.SearchResponse
已被弃用。
用SearchHits<T> search(Query query, Class<T> clazz)
相反,传入NativeSearchQuery
它可以包含一个SuggestBuilder
并从返回的SearchHit<T>
.
在ReactiveSearchOperations
新的suggest
方法返回一个Mono<org.springframework.data.elasticsearch.core.suggest.response.Suggest>
现在。
在这里,旧方法也被弃用了。
重大更改
移除org.elasticsearch
类。
-
在
org.springframework.data.elasticsearch.annotations.CompletionContext
注解属性type()
已从org.elasticsearch.search.suggest.completion.context.ContextMapping.Type
自org.springframework.data.elasticsearch.annotations.CompletionContext.ContextMappingType
,则可用的枚举值相同。 -
在
org.springframework.data.elasticsearch.annotations.Document
注解中,将versionType()
属性已更改为org.springframework.data.elasticsearch.annotations.Document.VersionType
,则可用的枚举值相同。 -
在
org.springframework.data.elasticsearch.core.query.Query
接口searchType()
属性已更改为org.springframework.data.elasticsearch.core.query.Query.SearchType
,则可用的枚举值相同。 -
在
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
相反。
处理 Query 的 field 和 sourceFilter 属性
在版本 4.2 之前,fields
属性Query
被解释并添加到sourceFilter
.
这是不正确的,因为这些对于 Elasticsearch 来说是不同的事情。
此问题已得到纠正。
因此,依赖于使用fields
指定应从文档的_source' and should be changed to use the `sourceFilter
.
search_type默认值
的search_type
在 Elasticsearch 中是query_then_fetch
.
现在,此 ID 也设置为Query
implementations,它之前设置为dfs_query_then_fetch
.
BulkOptions 更改
某些属性org.springframework.data.elasticsearch.core.query.BulkOptions
class 已更改其类型:
-
的类型
timeout
property 已更改为java.time.Duration
. -
'refreshPolicy' 属性的类型已更改为
org.springframework.data.elasticsearch.core.RefreshPolicy
.
指数选项更改
Spring Data Elasticsearch 现在使用org.springframework.data.elasticsearch.core.query.IndicesOptions
而不是org.elasticsearch.action.support.IndicesOptions
.