对于最新稳定版本,请使用Spring Data Elasticsearch 5.5.5spring-doc.cadn.net.cn

从4.2.x升级到4.3.x

本节介绍了从4.2.x版本到4.3.x的重大变更,以及如何用新引入的功能替代被移除的功能。spring-doc.cadn.net.cn

Elasticsearch 正在开发一个新的客户端,将取代RestHighLevel客户端因为RestHighLevel客户端使用了来自 Elasticsearch 核心库的代码,这些库已不再使用 Apache 2 授权。 Spring Data Elasticsearch 也在为这一变化做准备。 这意味着在内部,针对*操作接口需要改变——如果用户针对像这样的接口编程,这应该没问题弹性搜索作响应式弹性搜索作. 如果你使用的是像这样的实现类弹性搜索Rest模板你必须直接适应这些变化。spring-doc.cadn.net.cn

Spring Data Elasticsearch 还移除或替代了从org.elasticsearch在实现 Elasticsearch 访问的实现中,只在实现 Elasticsearch 访问的过程中使用这些包。 对用户来说,这意味着一些曾经使用的枚举类被存在于org.springframework.data.elasticsearch这些数值相同,内部映射到Elasticsearch的值上。spring-doc.cadn.net.cn

那些使用类且难以替换的地方,这种用法被标记为弃用,我们正在寻找替代类。spring-doc.cadn.net.cn

详情请查看弃破坏性变更部分。spring-doc.cadn.net.cn

弃用

建议方法

搜索作,如是弹性搜索作此外,建议方法org.elasticsearch.search.suggest.SuggestBuilder作为论证并返回org.elasticsearch.action.search.search.SearchResponse。已被弃用。 用SearchHits<T> 搜索(查询查询,类<T>clazz)而是通过了NativeSearchQuery其中可以包含一个建议建设者并阅读返回的建议结果SearchHit<T>.spring-doc.cadn.net.cn

响应式搜索作新的建议方法返回Mono<org.springframework.data.elasticsearch.core.suggest.response.Suggest>现在。 这里同样弃用了旧方法。spring-doc.cadn.net.cn

变更

移除org.elasticsearch来自 API 的类。

  • org.springframework.data.elasticsearch.annotations.CompletionContext属性注释类型()已从变更org.elasticsearch.search.suggest.completion.context.ContextMapping.Typeorg.springframework.data.elasticsearch.annotations.CompletionContext.ContextMappingType,可用的枚举值相同。spring-doc.cadn.net.cn

  • org.springframework.data.elasticsearch.annotations.Document注释versionType()属性变为org.springframework.data.elasticsearch.annotations.Document.VersionType,可用的枚举值相同。spring-doc.cadn.net.cn

  • org.springframework.data.elasticsearch.core.query.Query接口searchType()属性变为org.springframework.data.elasticsearch.core.query.Query.SearchType,可用的枚举值相同。spring-doc.cadn.net.cn

  • org.springframework.data.elasticsearch.core.query.Query接口 返回值暂停()改为java.time.Duration.spring-doc.cadn.net.cn

  • SearchHits<T>'类不包含'org.elasticsearch.search.aggregations.Aggregations了。 取而代之的是org.springframework.data.elasticsearch.core.AggregationsContainer<T>类 其中T是来自底层客户端的具体聚合类型。目前这将是组织 .springframework.data.elasticsearch.core.clients.elasticsearch7.ElasticsearchAggregations对象; 之后会有不同的实现版本。同样的更改也发生在ReactiveSearchOperations.aggregate()函数,现在返回Flux<AggregationContainer<?>>. 使用聚合的程序需要修改,将返回值铸造到相应的类以进一步处理。spring-doc.cadn.net.cn

  • 这些方法可能会抛出org.elasticsearch.ElasticsearchStatusException现在要扔了org.springframework.data.elasticsearch.RestStatusException相反。spring-doc.cadn.net.cn

查询字段和 sourceFilter 属性的处理

直到4.2版本领域的属性查询被解释并加入了包含列表sourceFilter. 这不正确,因为这些是Elasticsearch的不同内容。现在已经更正了。因此,依赖于领域指定应从文档返回哪些字段_source“,并应改为使用”sourceFilter”.spring-doc.cadn.net.cn

search_type默认值

该项的默认值search_type在Elasticsearch中为query_then_fetch. 现在这个数值也被设置为默认值查询实现,之前设置为dfs_query_then_fetch.spring-doc.cadn.net.cn

批量选项变更

以下的一些性质org.springframework.data.elasticsearch.core.query.BulkOptions类别已更改其类型:spring-doc.cadn.net.cn

指数期权变化

Spring Data Elasticsearch 现在使用org.springframework.data.elasticsearch.core.query.IndicesOptions而不是org.elasticsearch.action.support.IndicesOptions.spring-doc.cadn.net.cn

完成课程

包里的类别org.springframework.data.elasticsearch.core.completion已迁移至org.springframework.data.elasticsearch.core.suggest.spring-doc.cadn.net.cn

其他更名

org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentPropertyConverter界面已重命名为org.springframework.data.elasticsearch.core.mapping.PropertyValueConverter. 同样,名为 XXPersistentPropertyConverter 的实现类也被重命名为 XXPropertyValueConverterspring-doc.cadn.net.cn