Hibernate Search 是一个库,它通过自动索引实体,将 Hibernate ORM 与 Apache Lucene 或 Elasticsearch 集成,以实现高级搜索功能:全文搜索、地理空间搜索、聚合等。更多信息,请参阅 hibernate.org 上的 Hibernate Search。

我们刚刚发布了 5.10.0.Final 版本,这是 5.10 分支的第一个稳定版本。此版本将 ORM 集成升级到 ORM 5.3 和 JPA 2.2,通过 Hibernate ORM 5.3 集成 DI 框架,升级到 WildFly 12 和 JGroups 4,以及 JPMS 自动模块名称。

新功能

如果在 5.9.0.Final 版本发布后你没有注意到,那么对于你来说有很多新功能!以下是自 5.9 版本以来的重要更改摘要。

如果你尝试了 Beta/CR 版本,那么这次发布仅添加了 5.10.0.CR1 上的两个更改。

  • HSEARCH-3159:Hibernate Search 的 ORM 集成现在依赖于 Hibernate ORM 5.3.0.Final。

  • HSEARCH-3156@ContainedIn 在针对仅在搜索中配置了一些子类的类时,将不再在运行时失败。

ORM 5.3 和 JPA 2.2 兼容性

Hibernate Search 5.10 设计用于与 Hibernate ORM 5.3 一起工作。

通过 Hibernate ORM 5.3 集成 DI 框架

Hibernate Search 现在利用 Hibernate ORM 对依赖注入框架的集成。如果你使用了一个与 Hibernate ORM 5.3 集成的依赖注入框架,并且你在依赖注入上下文中添加了字段桥接器,那么 Hibernate Search 将自动检索并使用此上下文中的字段桥接器。

这尤其允许你使用依赖注入框架的功能(@java.inject.Inject、Spring 的 @Autowired 等)将你的 DI 上下文中的组件注入到你的字段桥接器中。

该集成已在 WildFly 12 这样的 CDI 2.0 环境中已知工作,Spring 团队可能会在它添加对 JPA 2.2 的支持后使其工作。

升级到 WildFly 12 和 JGroups 4

现在Hibernate Search的JBoss模块针对WildFly 12。这意味着JGroups后端现在使用JGroups 4,不再兼容JGroups 3。

此外,我们还利用这个机会将JGroups后端的JBoss模块从引擎功能包移至一个专用的功能包

JPMS自动模块名称

我们在JAR文件中添加了自动JPMS模块名称。

请注意,Hibernate Search JAR仍然只能作为自动模块使用,因为我们的一些依赖项还不能轻松地作为模块使用。

以下是模块名称

  • org.hibernate.search.engine

  • org.hibernate.search.orm

  • org.hibernate.search.backend.elasticsearch

  • org.hibernate.search.backend.elasticsearch.aws

  • org.hibernate.search.clustering.jms

  • org.hibernate.search.clustering.jgroups

  • org.hibernate.search.jsr352.core

  • org.hibernate.search.jsr352.jberet

  • org.hibernate.search.serialization.avro

直接访问Elasticsearch客户端

Hibernate Search现在提供了一种直接访问Elasticsearch客户端的方法。有关更多信息,请参阅文档

其他更改

以下是自Hibernate Search 5.9.0.Final以来的一些其他显著更改

  • HSEARCH-3026:如果您的Elasticsearch集群通过带有非根路径的URL访问,您现在可以使用hibernate.search.default.elasticsearch.path_prefix来告诉Hibernate Search有关该路径。

  • HSEARCH-3039:我们在几个版本前移除了从搜索中分析文档标识符的功能,但Hibernate Search的一些部分在特定情况下仍然对文档标识符进行分析,特别是在查询它们以及使用@IndexedEmbedded嵌入文档ID时。这已经被修复:现在Hibernate Search始终跳过对文档标识符的分析。

  • HSEARCH-3021:到依赖注入框架的集成现在已有适当的文档

  • HSEARCH-3138:我们恢复了与针对Hibernate Search 5.5构建的应用程序的二进制兼容性,因此Hibernate Search 5.10可以包含在即将发布的WildFly版本中。

有关自5.9.0.Final以来的完整更改列表,请参阅我们JIRA实例上的此问题列表

有关自5.10.0.CR1以来的完整更改列表,请参阅发布说明

如何获取此版本

所有详细信息均可在hibernate.org上的专用页面上找到并保持最新。

下一步

我们仍在开发Hibernate Search 6,其中概念验证现在提供Elasticsearch和Lucene后端,并提供通用的API,这将避免在仅需要Elasticsearch时将Lucene添加到您的类路径中。

反馈、问题、想法?

要取得联系,请使用以下渠道


返回顶部