从 4.0.x 升级到 4.1.x

本节介绍从版本 4.0.x 到 4.1.x 的重大更改,以及如何使用新引入的功能替换已删除的功能。

弃用

id 属性的定义

可以通过将实体的一个属性命名为iddocument来将其定义为id属性。此行为现已弃用,并将产生警告。请使用@Id注解将属性标记为id属性。

索引映射

ReactiveElasticsearchClient.Indices接口中,updateMapping方法已弃用,取而代之的是putMapping方法。它们的功能相同,但putMapping与 Elasticsearch API 中的命名保持一致。

别名处理

IndexOperations接口中,addAlias(AliasQuery)removeAlias(AliasQuery)queryForAlias()方法已弃用。新的alias(AliasAction)getAliases(String…​)getAliasesForIndex(String…​)方法提供了更多功能和更简洁的 API。

父 ID

从 Elasticsearch 版本 6 开始,已删除父 ID 的使用。我们现在弃用相应的字段和方法。

移除

类型映射

@Document注解和IndexCoordinates对象的类型映射参数已被移除。它们在 Spring Data Elasticsearch 4.0 中已被弃用,并且不再使用它们的值。

重大更改

ReactiveElasticsearchClient.Indices 方法的返回类型

到目前为止,ReactiveElasticsearchClient.Indices中的方法尚未使用。随着ReactiveIndexOperations的引入,有必要更改一些返回类型。

  • createIndex变体现在返回Mono<Boolean>而不是Mono<Void>,以指示索引创建是否成功。

  • updateMapping变体现在返回Mono<Boolean>而不是Mono<Void>,以指示映射存储是否成功。

DocumentOperations.bulkIndex 方法的返回类型

这些方法以前返回一个List<String>,其中包含新索引记录的 ID。现在它们返回一个List<IndexedObjectInformation>;这些对象包含 ID 和有关乐观锁定的信息(seq_no 和 primary_term)。