从 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.0 版本开始,已移除父 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 方法的返回值类型

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