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

Hibernate Search 版本 5.4.0.CR1 现已可用!它使用 Hibernate ORM 5.0.0.CR2 构建,基本上已经准备好适配 ORM 5,我们只需等待它被标记为 最终版

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-orm</artifactId>
    <version>5.4.0.CR1</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.0.CR2</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.0.0.CR2</version>
</dependency>

在容器中使用 MassIndexer 时不再出现超时

现在您可以为 MassIndexer 设置不同的超时时间,以便它将启动内部事务,因此如果您在 WildFly 等容器中运行 Hibernate Search,您不再需要在 5 分钟的截止日期和更改整个容器的默认超时时间之间做出选择。

fullTextSession
   .createIndexer( User.class )
   .transactionTimeout( 1800 ) //seconds
   .startAndWait();

JMS 后端有重大改进

事务性 JMS 后端

如上周的博客中更详细地解释的那样,Hibernate Search 现在提供了一个选项,可以将其索引操作包含在与 RDBMS 相同的事务中。

简而言之,可以通过设置此属性来启用它

hibernate.search.worker.enlist_in_transaction=true

但请注意:这是一个全局设置!如果您想使用它,所有后端都必须设置为使用启用 XA 的、事务性的 JMS 队列。

请告诉我们,如果您有需要我们允许某种混合模式的优秀用例,我们将不胜感激。

JMS 消息头 JMSXGroupID

Hibernate Search 现在将使用特定的 JMSXGroupID 消息头并将其设置为索引名称。这将允许 JMS 后端的使用者利用 消息分组

模块版本和在 WildFly 中运行

第一个使用Hibernate ORM 5的WildFly版本是10.0.0.Alpha5,它在上个周末发布。因此,我们为这个应用服务器创建的JBoss模块现在针对的是WildFly 10,但至少是版本10.0.0.Alpha5

从哪里下载

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


返回顶部