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

在过去几个月里,我们一直在努力升级 Hibernate Search,以便使用 Apache Lucene 5,以跟上 Lucene 社区的最新发布。

今天,Hibernate Search 5.5.0.Alpha1 已发布!

正如版本号所示,这是第一个版本,但我们也需要您的反馈和建议,以便更好地评估将此版本发展成为优秀、高效和稳定的最终版本所需的步骤。

稳定的 API

正如 Lucene 社区的一位杰出开发者 Uwe Schindler 建议我尝试的那样,结果表明,在 Hibernate Search 的次要升级中,可以从 Apache Lucene 版本 4 升级到 5(重大升级):许多事情得到了改进,一些事情略有不同,但总体而言,API 没有受到任何重大变化的影响。

如果您为 Hibernate Search 编写了强大的使用扩展,可能会受到一些 Lucene API 的细微变化的影响,在这种情况下

如果升级过程中存在困难,请告知我们:我们可以尝试改进这一点,或者至少改进迁移指南。如果您不告诉我们,我们可能不知道,这会让许多其他开发者感到困难!

改进的性能

Apache Lucene 代码中的一些更改与效率提升有关,尤其是在内存使用方面。

然而,我们这次发布的目的是功能和正确性;我们没有时间进行性能测试,而且坦白地说,即使我们有时间,也没有什么能比得上来自用户社区的反馈。

我们非常感谢您的帮助,尝试使用它并运行一些性能测试,尤其是如果您能够与Hibernate Search(基于更早版本的Apache Lucene)的旧版本进行比较。

如果您认为可以尝试这项功能,这将是一个独一无二的贡献机会,同时我们也会为您提供分析和理解性能报告的见解和支持!

排序和分面:使用正确的类型!

似乎在使用Apache Lucene 4时,如果您运行了一个数值分面查询,但目标字段不是数值类型,它仍然可以工作——或者看起来可以工作。

同样,如果您使用错误的SortType对查询进行排序,Apache Lucene 4似乎很宽容。

现在使用Apache Lucene 5,并且由于我们需要进行一些内部更改以简化您的迁移成本,对正确类型的验证变得更加严格。

请注意,如果您匹配类型错误,您将获得以下运行时异常:

Type mismatch: ageForIntSorting was indexed with multiple values per document, use SORTED_SET instead

我知道这些可能令人困惑,因此我们正在努力改进错误信息:[HSEARCH-1951](https://hibernate.atlassian.net/browse/HSEARCH-1951);即使有这些错误信息,意义是您需要修复您的映射。这不是什么丢脸的事情,我们通过几个单元测试发现这个问题太宽松了;-)

如何获取

您所需的一切都可以在Hibernate Search的网站上找到。从这里下载完整发行版,或者从Maven Central获取,并且不要犹豫在我们的论坛邮件列表中联系我们。


回到顶部