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

我们刚刚发布了Hibernate Search 6.0.0.Alpha5,这是仍在开发中的6.0分支的第五个版本。此版本主要恢复了“indexNullAs”功能,为桥接器添加了一个全新的API来声明依赖项,并增加了对Elasticsearch 6.7和7.0的兼容性。

开始使用Hibernate Search 6

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

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

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

有关迁移和我们将如何帮助您的更多信息,请参阅迁移指南

新增功能

"indexNullAs"回归

“indexNullAs”功能已回归,允许在索引时用您选择的价值替换null属性

@GenericField(indexNullAs = "1900-01-01")
public LocalDate getBirthDate() {
        return birthDate;
}

在注解中,“indexNullAs”属性作为字符串传递,但字符串的格式应按照属性类型(整数、日期等)进行格式化。有关更多信息,请参阅文档

注意:

  • 移除了配置属性中配置的“default” null标记的支持,因为当每个字段都需要不同类型的null标记时,这不再有意义(HSEARCH-3553)。

  • 由于在某些边缘情况(例如,当@IndexedEmbedded.prefix不包含任何点时)中定义不当,并且无法为Elasticsearch实现(参见HSEARCH-2465),因此移除了对“indexNullAs”的支持。在未来的版本中,将通过添加对象字段的存在谓词来补偿(参见HSEARCH-2389)。

在桥接中声明依赖项的更简单API

为了使桥接更容易使用,我们添加了一种更直接的方式来声明TypeBridgePropertyBridge将使用的属性。

一旦我们认为它们准备就绪,我们将更详细地记录这个功能和桥接的一般情况,但如果您感兴趣,您已经在示例中找到了示例

版本升级

其他改进和错误修复

  • HSEARCH-3534:“minimumShouldMatch”的默认值在Elasticsearch和Lucene之间不同。Elasticsearch在版本7之前,曾使用非平凡规则来确定是否需要“should”子句进行匹配,特别是考虑到这个子句是否嵌套在“filter”子句中。这与Lucene后端的行为不同,甚至更糟的是与Elasticsearch 7+中的行为不同。我们确保重写了默认值,以便使用Hibernate Search DSL创建的每个谓词的行为与Lucene相同。感谢Goran Jaric的汇报。

  • HSEARCH-3563:当明确配置Elasticsearch方言时,您不再需要明确指定方言,只需提供您期望的Elasticsearch版本,Hibernate Search将为您选择正确的方言。

  • HSEARCH-1656:识别实现接口的注解。

  • HSEARCH-2941MassIndexerProgressMonitor方法现在始终使用long类型。

  • HSEARCH-3566:当在@IndexingDependency.derivedFrom中提到的关联更新时,将触发重新索引。

等等。有关上一版本以来所有更改的完整列表,请参阅发行说明

如何获取此版本

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

反馈、问题、想法?

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


返回顶部