Hibernate Search 4 最终版发布

发布者    |       Hibernate Search

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

Hibernate Search 团队非常高兴发布 Hibernate Search 4。这是我们长期以来的巨大努力,我们迫不及待地想让您亲身体验。这个版本与 Hibernate Core 4 最终版 同步发布。我们确保两者能够完美协同工作。

新特性太多,无法一一列举。让我为您总结一下

  • 支持 Hibernate Core 4
  • 支持除了 Hibernate Core 之外的数据/事件源(现在是一个可选依赖项)
  • 更清晰的 API、SPI 和实现类 分离
  • 更好的日志和错误报告
  • 更好的底层架构 - 索引管理器现在允许每个索引使用 一个后端,甚至非目录索引
  • 近乎实时搜索
  • 优化且 跨版本兼容的通信格式,用于主从之间的通信
  • 性能改进(更多分析器并行化、更细粒度的主节点等)
  • 支持在自定义桥接字段上进行投影
  • 支持@IndexedEmbedded在基本类型集合上
  • 更简单的文档翻译工作方式

基础工作

我们已经做了大量的基础工作。Hibernate Search 4 针对 Hibernate Core 4 并使用其优秀的集成器概念。我们的代码现在已正确地分为 API、SPI 和实现类。如果您导入 impl 包中包含的类,您知道这段代码在微版本之间不一定能保证工作。impl包,您知道这段代码不保证在微版本之间工作。

为了协助我们在Infinispan中的工作,Hibernate Search现在真正独立于Hibernate Core - 它是一个可选依赖项。我们还改进了错误信息和日志,现在每个错误信息都带有唯一的标识符,例如HSEARCH00024。我们的想法是支持国际化,并让您轻松地通过Google搜索错误并找到描述相同问题的帖子。

架构和索引工作

我们已经重构了底层架构,以提供更大的灵活性并为Hibernate OGM的工作做好准备。每个索引都有自己的后端配置(使用JMS或直接Lucene目录,同步/异步等)。这也有助于我们更有效地并行索引事物。另一个好处是,从技术上讲,您可以为每个索引有一个主节点(在主/从模式中),而不是为所有索引有一个主节点。这有助于在高压力场景中的可扩展性。

现在我们还支持基于非目录的索引管理器,这使我们能够实现近实时搜索(有时称为NRT搜索)。近实时搜索有一些需要注意的问题,但非常有用。有关更多信息,请参阅近实时搜索

为了支持异构版本的集群,我们重写了用于从节点和主节点之间通信的通信协议。我们使用Avro作为序列化库,它为我们提供了所需抽象。一个很好的副作用是,与旧的Java序列化方法相比,负载更小,速度有所提高。

其他

我们还做了许多其他工作。请查看发行说明中的完整更改列表。当然,它还支持JBoss AS 7

我想提到的另一件事是,将文档翻译成外语的过程变得更加简单。这一切都在网上 :) 如果你想翻译文档,请阅读有关翻译过程的更多信息。

获取发行版

如果您转换现有应用程序,请务必阅读迁移指南。并下载Hibernate Search 4

非常感谢所有使这个版本成为可能的贡献者,无论是通过拉取请求、错误报告还是论坛上的反馈。

祝大家享受并度过愉快的节日。


回到顶部