本节介绍从版本 4.2.x 到 4.3.x 的重大更改,以及如何将已删除的功能替换为新引入的功能。Spring中文文档

Elasticsearch 正在开发一个新的客户端,该客户端将取代 Elasticsearch 核心库中的代码,这些库不再获得 Apache 2 许可。 Spring Data Elasticsearch 也在为这一变化做准备。 这意味着在内部,接口的实现需要更改 - 如果用户针对 或 等接口进行编程,这应该没有问题。 如果您直接使用实现类,则需要适应这些变化。RestHighLevelClientRestHighLevelClient*OperationsElasticsearchOperationsReactiveElasticsearchOperationsElasticsearchRestTemplateSpring中文文档

Spring Data Elasticsearch 还删除或替换了其 API 类和方法中包中的类的使用,仅在实现对 Elasticsearch 访问的实现中使用它们。 对于用户来说,这意味着使用的一些枚举类被具有相同值的枚举替换,这些枚举在内部映射到 Elasticsearch 的枚举上。org.elasticsearchorg.springframework.data.elasticsearchSpring中文文档

使用不容易替换的类的地方,此用法标记为已弃用,我们正在努力替换。Spring中文文档

有关更多详细信息,请查看有关弃用重大更改的部分。Spring中文文档

Elasticsearch 正在开发一个新的客户端,该客户端将取代 Elasticsearch 核心库中的代码,这些库不再获得 Apache 2 许可。 Spring Data Elasticsearch 也在为这一变化做准备。 这意味着在内部,接口的实现需要更改 - 如果用户针对 或 等接口进行编程,这应该没有问题。 如果您直接使用实现类,则需要适应这些变化。RestHighLevelClientRestHighLevelClient*OperationsElasticsearchOperationsReactiveElasticsearchOperationsElasticsearchRestTemplateSpring中文文档

Spring Data Elasticsearch 还删除或替换了其 API 类和方法中包中的类的使用,仅在实现对 Elasticsearch 访问的实现中使用它们。 对于用户来说,这意味着使用的一些枚举类被具有相同值的枚举替换,这些枚举在内部映射到 Elasticsearch 的枚举上。org.elasticsearchorg.springframework.data.elasticsearchSpring中文文档

使用不容易替换的类的地方,此用法标记为已弃用,我们正在努力替换。Spring中文文档

有关更多详细信息,请查看有关弃用重大更改的部分。Spring中文文档

弃用

建议方法

在 中,以及 中,将 a 作为参数并返回 a 的方法已被弃用。 改用,传入可以包含 a 的 a 并从返回的 .SearchOperationsElasticsearchOperationssuggestorg.elasticsearch.search.suggest.SuggestBuilderorg.elasticsearch.action.search.SearchResponseSearchHits<T> search(Query query, Class<T> clazz)NativeSearchQuerySuggestBuilderSearchHit<T>Spring中文文档

在新方法中,返回 now。 在这里,旧方法也被弃用了。ReactiveSearchOperationssuggestMono<org.springframework.data.elasticsearch.core.suggest.response.Suggest>Spring中文文档

重大变更

从 API 中删除类。org.elasticsearch

  • 在注释中,属性已从 更改为 ,可用的枚举值相同。org.springframework.data.elasticsearch.annotations.CompletionContexttype()org.elasticsearch.search.suggest.completion.context.ContextMapping.Typeorg.springframework.data.elasticsearch.annotations.CompletionContext.ContextMappingTypeSpring中文文档

  • 在属性更改为 的注释中,可用的枚举值是相同的。org.springframework.data.elasticsearch.annotations.DocumentversionType()org.springframework.data.elasticsearch.annotations.Document.VersionTypeSpring中文文档

  • 在属性已更改为 的接口中,可用的枚举值是相同的。org.springframework.data.elasticsearch.core.query.QuerysearchType()org.springframework.data.elasticsearch.core.query.Query.SearchTypeSpring中文文档

  • 在接口中,返回值已更改为 。org.springframework.data.elasticsearch.core.query.Querytimeout()java.time.DurationSpring中文文档

  • 不再是了。 相反,它现在包含该类的实例,其中是所使用的基础客户端的具体聚合类型。 目前,这将是一个对象;稍后将提供不同的实现。 对函数进行了相同的更改,现在返回一个 . 需要更改使用聚合的程序,以将返回的值强制转换为适当的类以进一步处理它。SearchHits<T>`class does not contain the `org.elasticsearch.search.aggregations.Aggregationsorg.springframework.data.elasticsearch.core.AggregationsContainer<T>Torg .springframework.data.elasticsearch.core.clients.elasticsearch7.ElasticsearchAggregationsReactiveSearchOperations.aggregate()Flux<AggregationContainer<?>>Spring中文文档

  • 可能抛出 now 的方法将抛出。org.elasticsearch.ElasticsearchStatusExceptionorg.springframework.data.elasticsearch.RestStatusExceptionSpring中文文档

查询的 field 和 sourceFilter 属性的处理

在版本 4.2 之前,a 的属性被解释并添加到 的 include 列表中。 这是不正确的,因为这些对 Elasticsearch 来说是不同的东西。 此问题已得到纠正。 因此,依赖于 using 的代码可能不再起作用,该代码依赖于 using 来指定应从文档的 .fieldsQuerysourceFilterfields_source' and should be changed to use the `sourceFilterSpring中文文档

search_type默认值

Elasticsearch 中 的默认值为 。 现在,该值也设置为实现中的默认值,之前设置为 。search_typequery_then_fetchQuerydfs_query_then_fetchSpring中文文档

BulkOptions 更改

该类的某些属性已更改其类型:org.springframework.data.elasticsearch.core.query.BulkOptionsSpring中文文档

  • 属性的类型已更改为 。timeoutjava.time.DurationSpring中文文档

  • 'refreshPolicy' 属性的类型已更改为 。org.springframework.data.elasticsearch.core.RefreshPolicySpring中文文档

索引选项更改

Spring Data Elasticsearch 现在使用代替 .org.springframework.data.elasticsearch.core.query.IndicesOptionsorg.elasticsearch.action.support.IndicesOptionsSpring中文文档

结业班

包中的类已移至 。org.springframework.data.elasticsearch.core.completionorg.springframework.data.elasticsearch.core.suggestSpring中文文档

其他重命名

接口已重命名为 。 同样,名为 XXPersistentPropertyConverter 的实现类已重命名为 XXPropertyValueConverterorg.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentPropertyConverterorg.springframework.data.elasticsearch.core.mapping.PropertyValueConverterSpring中文文档