我们刚刚发布了 Hibernate Search 的新候选版本:7.0.0.CR1。
本版本特别增加了与 Hibernate ORM 基于区分符的多租户的兼容性,与 Elasticsearch 8.10 和 OpenSearch 2.10/2.11 的兼容性,Hibernate ORM 6.3.1.Final 的升级,Lucene 9.8 的升级,一些 Maven 软件包重命名,以及其他错误修复和改进。
新功能
| 有关自 6.2 版以来的所有新功能和改进的总结,请访问 hibernate.org 上的专用页面。 | 
依赖项升级
- JDK 11(提醒)
- 
Hibernate Search 现在需要 Java 11 作为基础,不再与 Java 8 兼容。 
- 切换到 Jakarta EE(提醒)
- 
Hibernate Search 已完全切换到 Jakarta EE,不再与 Java EE 兼容。所有以前的系列中的 -orm6和-jakarta软件包,它们提供了 Hibernate ORM 6 和 Jakarta EE 兼容性,现在都已不可用,因为这种兼容性现在由主要软件包提供。
- Hibernate ORM (HSEARCH-4959)
- 
Hibernate Search 现在依赖于 Hibernate ORM 6.3.1.Final。 
- Lucene (HSEARCH-4982)
- 
Lucene 后端现在使用 Lucene 9.8。 
- Elasticsearch (HSEARCH-4946)
- 
Elasticsearch 后端与 Elasticsearch 8.10 以及其他已兼容的版本一起工作 — 以下版本不再兼容,因为它们已经达到了生命周期的结束 - 
5.x/6.x(在 Hibernate Search 7.0.0.Beta1 中已取消兼容性) 
- 
7.0-7.9(在 HSEARCH-4934 中新取消兼容性) 
 
- 
- OpenSearch (HSEARCH-4978/HSEARCH-4993)
- 
Elasticsearch后端支持与OpenSearch 2.10和2.11以及其他已兼容的版本一起工作 — 但不包括1.0、1.1和1.2版本,因为这些版本的兼容性已在HSEARCH-4934中删除,因为它们已经达到生命周期的终点。 
- 其他
- 
- 
HSEARCH-4941/HSEARCH-4946/HSEARCH-4958/HSEARCH-4967/HSEARCH-4990/HSEARCH-4994:升级到Elasticsearch 客户端 8.10.4 
- 
HSEARCH-4957 升级到Jackson 2.15.2 
- 
HSEARCH-4984 升级到Avro 1.11.3 
- 
HSEARCH-4992 升级到AWS SDK 2.21.1 
 
- 
与Hibernate ORM基于discriminator的多租户兼容性
通过HSEARCH-4403,Hibernate Search现在可以索引利用数据库中基于discriminator的多租户(@TenantId)的Hibernate ORM实体。
Maven工件重命名
一些Hibernate Search Maven工件已被重命名
- 
HSEARCH-4940 与JSR-352工件相关的Maven工件已被重命名,以反映转移到Jakarta EE规范 - 
hibernate-search-mapper-orm-batch-jsr352-core已重命名为hibernate-search-mapper-orm-jakarta-batch-core。
- 
hibernate-search-mapper-orm-batch-jsr352-jberet已重命名为hibernate-search-mapper-orm-jakarta-batch-jberet。
 
- 
- 
HSEARCH-4928 工件 hibernate-search-mapper-orm-coordination-outbox-polling已重命名为hibernate-search-mapper-orm-outbox-polling。
其他改进和错误修复
- 
HSEARCH-4938:不再支持正则表达式谓词中的补集运算符( ~)。
- 
HSEARCH-4947:Hibernate Search将不再在某些配置下在Windows上启动失败。 感谢Gábor Lipták 报告此问题并帮助测试修复! 
- 
HSEARCH-4487:Jakarta Batch Mass Indexing作业已被重新设计,以更接近地反映 MassIndexer的行为。因此,它将不再在索引包含@IndexedEmbedded的实体并使用MySQL以及将idFetchSize设置为Integer.MIN_VALUE时失败。感谢Ivan Kotev 报告此问题并帮助确定原因! 
- 
HSEARCH-4980:Hibernate Search将不再在Jakarta Batch Mass Indexing作业中尝试索引具有复合标识符的实体时失败。 
- 
HSEARCH-4969:修复了由于Lucene 9升级中的错误而引起的bug,其中 TextMultiValues会触发IndexOutOfBoundsException。
- 
HSEARCH-4983:修复了Lucene后端中可能导致的潜在并发问题,这可能导致“`LockObtainFailedException`: 锁由此虚拟机持有”。 
- 
HSEARCH-4986:Jakarta Batch Mass Indexing作业将不再在某些JDBC驱动程序(DB2、MSSQL等)的分区映射阶段失败。 
- 
HSEARCH-4988:Hibernate Search将不再在启动时因映射自身类型的容器类型(如实现 Iterable<Path>的java.nio.Path)而引发StackOverflowError。尝试在这些类型上使用默认容器提取将失败,并带有清晰的解释,并且禁用容器提取或以其他方式解决无限递归将按预期工作。 
还有更多。有关自上次发布以来的完整更改列表,请参阅发布说明。
如何获取此版本
所有详细信息均可在hibernate.org的专用页面上找到,并保持最新。