您的要求,我们实现了:Hibernate Search 5.7.0.Final,支持Hibernate ORM 5.2.8,现已发布!当然,就像之前的版本一样,它还包含对Elasticsearch集成的实验性支持(甚至有一些改进)。
卡在旧版本的ORM上?不用担心,我们还发布了5.6版本的修复版本,即5.6.1.Final。
Hibernate Search 5.7.0.Final仅与Hibernate ORM 5.2.3及更高版本兼容。没有与Hibernate ORM 5.2.0至5.2.2兼容的Hibernate Search版本。 如果您需要使用Hibernate ORM 5.0.x或5.1.x且无法升级,请使用Hibernate Search 5.6.1.Final。 |
5.7版本自候选版本发布以来有哪些新功能?
以下是自候选版本发布以来的主要变更。
如果您需要迁移建议,请参阅迁移指南。
有关自5.7.0.CR1以来的完整变更列表,请参阅发行说明。有关自5.6.0.Final以来的完整变更列表,请参阅我们JIRA实例上的此票证列表。
一般改进
-
HSEARCH-2574:在合理的情况下,您现在可以在单个属性/方法上重复使用Hibernate Search注解。例如,如果您想在同一个
title
属性上添加两个索引字段,您可以写@Field(analyzer = @Analyzer(definition = "myAnalyzer") @Field(name = "title_sort", analyzer = @Analyzer(definition = "myAnalyzerForSort") private String title;
因此,您不再需要使用复合注解(
@Fields
)。但当然,这些注解仍然可用。 -
HSEARCH-2588:Sort DSL 中的一些方法允许显式指定排序字段类型,这在通过自定义字段桥接器添加的字段上进行排序时非常有用。我们改进了对
MetadataProvidingFieldBridge
的支持,现在您只需要在您的自定义字段桥接器上实现此接口,并且在使用排序 DSL 时不再需要任何特殊处理。因此,排序 DSL 中的byField(String, SortField.Type)
和andByField(String, SortField.Type)
方法已被弃用。 -
HSEARCH-2587:在使用 Sort DSL 对嵌入式(
@IndexedEmbedded
)字段进行排序时可能会发生 NPE;现在已修复。 -
HSEARCH-2576:查询中已删除不必要的内存分配,从而提高了查询吞吐量。
-
并且对其他集成 Hibernate Search 的解决方案进行了多项改进,如 HSEARCH-2597、HSEARCH-2561、HSEARCH-2418 或 HSEARCH-2585。
Elasticsearch 特定改进
-
HSEARCH-2453:Elasticsearch 认证现已完全实现:有专门的
username
和password
属性,因此您不再需要将凭据嵌入到 URL 中。 -
HSEARCH-2593:在使用 Elasticsearch 的自动节点发现时,无法自动检测新发现的节点的方案(HTTP 或 HTTPS);默认为 HTTP。现在您可以自定义它以使用 HTTPS:只需将
hibernate.search.default.elasticsearch.discovery.default_scheme https
添加到您的配置中。 -
HSEARCH-2590:在某些情况下,使用分页的查询可能会分配过多的内存;现在已修复。
5.6 中的新内容
5.6.1.Final 仅包含从 5.7 返回的修复。您可以在 发行说明 中查看自 5.6.0.Final 以来所有更改的完整列表。
接下来是什么?
我们现在专注于以下两个重大改进
-
支持 Elasticsearch 5 而不丢失对 Elasticsearch 2 的支持(HSEARCH-2434、HSEARCH-2581)。这将在 5.8 版本中实现。
-
简化我们的 API,特别是更好地适应远程索引服务(如 Elasticsearch),同时支持 Lucene 6。由于这需要破坏性更改,我们将这些更改包含在新的主要版本 Hibernate Search 6.0 中。
如何获取这些版本
所有版本均可在 Hibernate Search 的 网站 上找到。
理想情况下,使用工具从 Maven central 获取它;这些是坐标
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>5.7.0.Final</version>
</dependency>
要使用实验性的 Elasticsearch 集成,您还需要
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-elasticsearch</artifactId>
<version>5.7.0.Final</version>
</dependency>
从 Sourceforge 下载也可用。