简介
本指南的目的是帮助您将使用任何 7.1.x 版本的 Hibernate Search 的现有应用程序迁移到 7.2.x 系列的最新版本。
| 如果您认为有什么缺失或某些内容不起作用,请联系我们。联系我们。 |
如果您要从早期版本迁移,则应按照每个版本的迁移指南逐步迁移,从一个次要版本迁移到下一个次要版本。
|
对于 Hibernate Search 5 用户 请注意,自 Hibernate Search 5 以来,许多 API 已经发生了变化,有一些只是因为包发生了变化,另一些则是因为更基本的更改(例如不再在 Hibernate Search API 中使用 Lucene 类型)。 从 Hibernate Search 5 迁移时,建议您首先使用6.0 迁移指南迁移到 Hibernate Search 6.0,然后再迁移到更高版本(这将变得容易得多)。 |
要求
Hibernate Search 7.2.0.Final 的要求与 Hibernate Search 7.1 的要求基本相同,唯一区别是 Hibernate ORM 版本升级
-
JDK 11 或更高版本;
-
Lucene 9 作为其 Lucene 后端;
-
Elasticsearch 7.10+ 或 OpenSearch 1.3+ 作为其 Elasticsearch 后端;
-
Hibernate ORM 6.6.x 适用于 Hibernate ORM 集成。
API
Hibernate Search 7.2.0.Final 中的API与 Hibernate Search 7.1 向后兼容。
由于 Hibernate ORM 允许使用非 String 租户标识符,因此某些 Hibernate Search 方法已弃用并引入了替代方法
-
org.hibernate.search.mapper.orm.scope.SearchScope#workspace(String tenantId)已弃用,建议使用org.hibernate.search.mapper.orm.scope.SearchScope#workspace(Object tenantId) -
org.hibernate.search.mapper.orm.scope.SearchScope#massIndexer(String tenantId)已弃用,建议使用org.hibernate.search.mapper.orm.scope.SearchScope#massIndexer(Object tenantId) -
org.hibernate.search.mapper.pojo.standalone.scope.SearchScope#workspace(String tenantId)已弃用,建议使用org.hibernate.search.mapper.pojo.standalone.scope.SearchScope#workspace(Object tenantId) -
org.hibernate.search.mapper.pojo.standalone.scope.SearchScope#massIndexer(String tenantId)已弃用,建议使用org.hibernate.search.mapper.pojo.standalone.scope.SearchScope#massIndexer(Object tenantId) -
org.hibernate.search.mapper.pojo.standalone.session.SearchSession#tenantIdentifier()已弃用,建议使用org.hibernate.search.mapper.pojo.standalone.session.SearchSession#tenantIdentifierValue() -
org.hibernate.search.mapper.pojo.standalone.session.SearchSessionBuilder#tenantId(String tenantId)已弃用,建议使用org.hibernate.search.mapper.pojo.standalone.session.SearchSessionBuilder#tenantId(Object tenantId) -
org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#countAbortedEvents(String tenantId)已弃用,建议使用org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#countAbortedEvents(Object tenantId) -
org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#reprocessAbortedEvents(String tenantId)已弃用,建议使用org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#reprocessAbortedEvents(Object tenantId) -
org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#clearAllAbortedEvents(String tenantId)已弃用,建议使用org.hibernate.search.mapper.orm.outboxpolling.mapping.OutboxPollingSearchMapping#clearAllAbortedEvents(Object tenantId)
此版本弃用了在多个搜索 DSL 方法中使用的 ValueConvert 枚举,并将其替换为新的 ValueModel 枚举。对于每个接受 ValueConvert 输入的已弃用方法,现在有一个替代方法,该方法改用接受 ValueModel。在代码中将 ValueConvert.YES 替换为 ValueModel.MAPPING,将 ValueConvert.NO 替换为 ValueModel.INDEX,在代码中显式设置了值的地方。
SPI
Hibernate Search 7.2.0.Final 中的 SPI 向后兼容 Hibernate Search 7.1。
已删除的弃用方法
-
org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate#workspace(DetachedBackendSessionContext) -
org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate#massIndexer(PojoMassIndexingContext,DetachedBackendSessionContext)
行为
Hibernate Search 7.2.0.Final 的行为向后兼容 Hibernate Search 7.1。
| 值得一提的是,在 HSEARCH-5062 中进行更改后,您可能会注意到 Hibernate Search 创建的加载实体的查询发生了变化。虽然我们希望引入的更改应该有助于提高性能,但如果您发现其中有任何问题,我们欢迎您联系我们告知我们。 |