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

Hibernate Search 的 5.0.0.Beta1 版本现已可供下载!

今年夏天我们的进展比预期慢,根据您的反馈,我们决定将一些希望在 5.0 版本中拥有的功能移至未来的 5.x 版本:当前代码库已经支持最新的 Apache Lucene 4 有一段时间了,我们相信它已经处于非常出色的状态,因此我们现在致力于快速反馈循环,以在 4-6 周内发布5.0.0.Final版本。

因此,在接下来的几周内,我们将致力于

  • 最后需要的未来兼容性 API 变更,以便在不影响 5.x 周期的公共 API 的情况下(希望如此)引入延迟的功能5.x周期,
  • 精炼文档
  • 对您的反馈做出反应!

重大变更

那些查看我们的详细变更日志的人可能已经看到了一系列小的变更,看起来并不太有趣……这是因为我们一直在与 Infinispan 团队紧密合作,一些非常出色的改进正以我们依赖项简单微版本更新的形式出现。

显著的性能改进:异步后端

新的异步后端比之前的后端效率高得多!如果您是 异步 用户,您一定会喜欢这种新设计。此外,尽管之前实现只是简单地 异步 并且不会提供任何时间保证,但现在我们公开了一个新的配置属性index_flush_interval这可能使更多系统可以使用异步后端:您可以选择每 5 分钟刷新一次,这样就不会在写入时产生很大的性能开销,并保证大约 5 分钟内新项目可见。

该后端性能提升极高,我们期待将相同的原理应用于同步后端;如果您感兴趣,设计细节请参见HSEARCH-1699

Infinispan集成改进

我们与Infinispan团队在多个领域进行了合作

Infinispan目录

已升级到最新的Apache Lucene4.10现在可靠性显著提高:我们终于解决了所有已知问题,添加了大量新测试,并在性能方面做了大量工作。

Infinispan查询

Infinispan包含一个查询模块,它将Hibernate Search 5的功能暴露给所有Infinispan用户:如果您知道如何使用Hibernate Search与常规Hibernate ORM应用程序(JPA)结合使用,那么您将很容易学会如何使用Infinispan查询的全文搜索功能。当然,最新的5.0.0.Beta1版本已包含在Infinispan 7中。

WildFly模块用于Infinispan集成

Infinispan项目现在也提供了一个方便使用的预包装zip文件,其中包含您可能需要复制到WildFly 8的所有模块,并且我们已经共同努力确保Hibernate Search可以使用这些最新的模块,而不是容器中包含的模块:这将让您立即受益于所有新功能,并且通常来说,不会受到容器在任何时候可能拥有的Infinispan版本的限制。这个主题仍在进行中,特别是需要更好的文档,但基本上,您只需从两个项目下载并解压缩模块包即可。

调试能力

Apache Lucene有一个名为《InfoStream》的概念,它将大量关于索引编写的详细信息输出到控制台。通过HSEARCH-1658,您现在可以配置Hibernate Search捕获所有这些细节并将其转发到您的日志流:请参阅Lucene配置章节中的《故障排除:启用Lucene的Infostream》。

基于Avro的序列化器中的关键问题已解决

早期alpha版本的Hibernate Search 5受到基于Apache Avro的序列化服务代码中的关键线程安全问题的影响,使其基本上除了简单的单元测试外无法使用。现在这个问题已经解决,不会影响任何(旧版)稳定发布。

Avro协议:版本升级

基于Avro的序列化后端现在能够传输刷新命令;这主要是为了允许透明的改进,但作为用户,您需要记住,您需要首先升级主节点,因为旧的主节点将无法解析由Hibernate Search的新版本发送的消息。

的演变@ContainedIn注解

这个注解以前只是@IndexedEmbedded的对应物,但正如在HSEARCH-1580中讨论的那样,它也有助于定义任何其他形式的索引依赖关系。这以前是可行的,但这是无意中实现的,因此在最近的发展中被破坏,现在功能已恢复,我们正在将其作为一个有意识地支持的功能。

感谢Guillaume Smet,他为提出此问题并提供了补丁!

组件升级

此版本是在Hibernate ORM4.3.7.Final、JGroups3.6.0.Final、Infinispan7.0.0.CR2、WildFly8.1.0.Final、Apache Lucene4.10.1.

需要反馈!

请尝试使用它,并告诉我们您是否遇到任何问题,或者如果文档中的任何部分不够清晰。像往常一样,我们将监控论坛邮件列表和StackOverflow(如果您使用标签hibernate-search.


回到顶部