Hibernate Search

从 Hibernate Search 5.9 迁移到 5.10 的指南

我们在此为您提供将现有 Search 应用程序迁移到最新版本的帮助。

从 5.9.x 升级到 Hibernate Search 5.10.x

本指南的目的是帮助您将使用任何 5.9.x 版本的 Hibernate Search 的现有应用程序迁移到 5.10.x 系列的最新版本。如果您希望迁移不同版本,请参阅 Hibernate Search 迁移指南

本文档提供了迁移的要点。它指的是 Hibernate Search 5.10.10.Final 版本。如果您认为缺少内容或某些内容无法正常工作,请 联系我们

需求

此版本的 Hibernate Search 现在需要使用来自 5.3.x 系列的 Hibernate ORM 版本。

这意味着它现在需要 JPA 2.2,因为这是 Hibernate ORM 5.3 实现的 JPA 版本。

配置更改

  • 我们 在我们的 JAR 中添加了 Java 模块名称。以前,JVM 是根据 JAR 文件名推断名称的,就像它对所有未定义模块名称的 JAR 所做的那样。如果您在 module-info 中依赖 Hibernate Search,您可能需要更新这些依赖项。

API 更改

  • ElasticsearchEnvironment.ANALYSIS_DEFINITION_PROVIDER 现在包含 elasticsearch.analysis_definition_provider,没有 hibernate.search. 前缀,与同一类中的其他常量保持一致。

  • 在我们的 API 中,少数在不兼容的方式发生改变的地方,已经恢复了与 Hibernate Search 5.5 的二进制兼容性。这主要对 Hibernate Search 集成者有意义。

SPI 更改

  • org.hibernate.search.indexes.spi.IndexManagerType 中删除了两个方法:createAnalyzerStrategycreateMissingValueStrategy。为了替代它们,我们添加了 IndexFamilyImplementor createIndexFamily(ServiceManager, SearchConfiguration),它会创建一个中间的“索引族”,而这个索引族又会提供分析器策略和缺失值策略。有关更多信息,请参阅 org.hibernate.search.indexes.spi.IndexFamilyImplementor 的 javadoc。

  • org.hibernate.search.hcore.spi.EnvironmentSynchronizer 现在公开了 org.hibernate.search.hcore.spi.EnvironmentSynchronizer#whenEnvironmentDestroying 方法。

行为更改

  • HSEARCH-3039 起,嵌入式 ID 不再被分析。嵌入式 ID 是定义为 @DocumentId(或者在没有的情况下,JPA 的 @Id)的属性,然后使用 @IndexedEmbedded(includeEmbeddedObjectId = true)@IndexedEmbedded(includePaths = { …​, "<the ID property name>", …​ }) 嵌入到另一个文档中。

返回顶部