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

我们刚刚发布了 Hibernate Search 5.11.1.Final,它是稳定版 5.11 分支的第一个错误修复版本,以及 6.0.0.Alpha2,它是仍在开发中的 6.0 分支的第二个版本。

开始使用 Hibernate Search 6

如果您想直接进入新的、闪亮的 Hibernate Search 6,参考文档中的 入门指南 是一个好起点。

Hibernate Search 6 仍在开发中,其 API 与 Search 5 有很大不同。

有关该分支的当前状态的更多信息,请参阅 hibernate.org 上关于 Search 6 的专用页面

有关迁移的更多信息以及我们打算如何帮助您,请参阅 迁移指南

FOSDEM 上的 Hibernate Search 6

如果您这个周末在布鲁塞尔的 FOSDEM 上,您可能会对我的 关于 Hibernate Search 6 的演讲 感兴趣,演讲将在 Search devroom 进行。

演讲将简短(约 20 分钟 + 提问)并且主要针对 Hibernate Search 新手,但我们可以之后进行讨论!

新功能

5.11.1.Final

Hibernate Search 5.11.1.Final 主要包括升级到 Hibernate ORM 5.4.1.Final (HSEARCH-3470),修复了一些重大错误。

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

6.0.0.Alpha2

以下是 Hibernate Search 6.0.0.Alpha2 的一些显著变化

  • 从 Search 5 迁移的功能

    • HSEARCH-3052:Elasticsearch索引生命周期设置(包括策略:createdrop-and-createvalidate等)从Search 5迁移过来。

    • HSEARCH-3268:批量索引器从Search 5迁移过来。

    • HSEARCH-3086:添加了与Search 5相比缺失的剩余投影:解释(用于调试,提供评分的解释)、文档(在Lucene中投影整个文档)、源(在Elasticsearch中投影整个文档)。

    • HSEARCH-3351FullTextQuery#getResultSize()从Search 5迁移过来。

  • 涉及API变化的改进

    • HSEARCH-3291:用于桥接的字段定义API已拆分为两个:类型定义和字段定义。这使得在ValueBridge中的API更加简洁,并为将来添加动态字段支持奠定了基础。这确实使API更加冗长,但我们打算在HSEARCH-3444中解决这个问题。

    • HSEARCH-3438:映射中与桥接和容器提取器相关的类型名称和注解名称现在应该更短、更干净

      • @GenericField(extractors = @ContainerValueExtractorBeanReference(type = Foo.class))变为@GenericField(extractors = @ContainerExtractorRef(type = Foo.class))

      • @GenericField(valueBridge = @ValueBridgeBeanReference(type = Foo.class))变为@GenericField(valueBridge = @ValueBridgeRef(type = Foo.class))

      • ……以及其他类型和注解的类似更改。

    • HSEARCH-3374:我们现在使用Search 5的语法来包含/排除范围谓词中的边界。

    • HSEARCH-3416:标识符谓词现在正确地期望@Id/@DocumentId属性的类型的参数,而不是始终期望字符串。

    • HSEARCH-3421:启用多租户时,标识符谓词现在可以正确工作。

    • HSEARCH-3101:设置中的后端类型不再需要是内部类的完全限定名称:您现在可以使用字符串“lucene”和“elasticsearch”。

    • HSEARCH-3450:已将多个配置属性重命名,以保持一致性,主要是在Lucene后端。有关新的属性名称,请参阅入门指南。

    • HSEARCH-3451:配置属性中的索引默认值现在以前缀hibernate.search.backends.<后端名称>.index_defaults开头,而不是hibernate.search.indexes.default.index_defaults。这意味着索引默认值是在每个后端的基础上定义的,而不是全局的,这可以更容易地使用多个后端类型。

    • HSEARCH-3464:用于在程序配置Hibernate Search时使用的属性名称的*Settings类已重命名以保持一致性。

  • 其他改进和错误修复

    • HSEARCH-3454:升级到Lucene 7.6.0

    • HSEARCH-3472:升级到Elasticsearch 6.6.0

    • HSEARCH-3470:升级Hibernate ORM到5.4.1.Final

    • HSEARCH-3174:对于通过程序API传递的设置(例如传递给JPA启动方法的java.util.Map),Hibernate Search现在也接受确切的属性类型(整数、枚举等)的值,而不仅仅是接受字符串。

    • HSEARCH-3429:投影DSL现在允许与其他DSLs一致的lambda语法。

    • HSEARCH-3053:Elasticsearch后端的完整工作编排机制从Search 5迁移过来:性能回到了生产级水平。

    • HSEARCH-3453:Hibernate Search不再在Elasticsearch HTTP请求池中执行阻塞的ORM相关操作,这可能会大幅降低Elasticsearch后端的性能。

    • HSEARCH-3170:CDI/Spring Bean现在在不再需要时立即释放,而不是在关闭时释放。这应该会为仅在引导期间需要的Bean(如桥梁构建器或配置器)带来一些改进。

有关自上次发布以来的完整变更列表,请参阅发布说明

如何获取这些版本

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

反馈、问题、想法?

要联系,请使用以下渠道


回到顶部