我们刚刚发布了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
为了使桥接更容易使用,我们添加了一种更直接的方式来声明TypeBridge
或PropertyBridge
将使用的属性。
一旦我们认为它们准备就绪,我们将更详细地记录这个功能和桥接的一般情况,但如果您感兴趣,您已经在示例中找到了示例。
版本升级
-
HSEARCH-3518和HSEARCH-3568:添加与Elasticsearch 6.7的兼容性
-
HSEARCH-3541:添加与Elasticsearch 7.0的兼容性
其他改进和错误修复
-
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-2941:
MassIndexerProgressMonitor
方法现在始终使用long
类型。 -
HSEARCH-3566:当在
@IndexingDependency.derivedFrom
中提到的关联更新时,将触发重新索引。
等等。有关上一版本以来所有更改的完整列表,请参阅发行说明。
如何获取此版本
所有详细信息均可在hibernate.org上的专用页面上找到,并且是最新的。