5.0.0.Alpha2 版本现在可在我们全新的网站上获得:下载:与 Alpha1 版本一样,它集成了 Apache Lucene 4.6.1,但现在我们做得更好 ;-)
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>5.0.0.Alpha2</version>
</dependency>
More Like This 查询
新功能!More Like This
查询是一种特殊类型的查询,它接受一个模型文档作为输入,而不是传统的字符串。您已经可以通过 Lucene 的 MoreLikeThis 查询实现使用它很长时间了,但这个实现在我们更丰富的基于实体的模型上使用起来相当复杂。Hibernate Search 现在通过我们的查询构建器 DSL 直接支持此功能,其最简单的形式如下所示
Coffee exampleCoffee = ...
QueryBuilder qb = fullTextSession.getSearchFactory()
.buildQueryBuilder()
.forEntity( Coffee.class )
.get();
Query mltQuery = qb
.moreLikeThis()
.comparingAllFields()
.toEntity( exampleCoffee )
.createQuery();
List results = fullTextSession
.createFullTextQuery( mltQuery, Coffee.class )
.list();
它做什么?它返回一个与 exampleCoffee 实例相似的 Coffee 实例列表。"相似" 的定义通常由您选择的分析器和索引选项控制。默认情况下,列表当然根据评分模型进行排序,因此最匹配的匹配项将是示例实体本身(这可能会让人惊讶,但在实践中通常很有用)。
关于此的更详细博客文章将随后发表,但如果您迫不及待地想了解更多信息,请参阅 构建查询 章节中的所有详细信息。
分面改进
这是 JIRA 上投票最高的改进请求之一,现在终于可以对面嵌套集合进行分面了。Hardy 还开始探索可能的性能改进以及如何使用新的 Lucene 4 功能:反馈、用例或补丁将非常受欢迎,因为我们急于改进分面。
查看迁移指南
如果您正在从Hibernate Search的早期版本更新应用程序,我们强烈建议您关注迁移指南,因为Lucene API的更改是显著的,并且并不总是自我文档化的。对迁移指南的建议也非常欢迎。
Apache Lucene迁移指南可能也有用,但我们已经将其大部分应用到了内部引擎,供您透明使用。
已移除hibernate-search-analyzers模块
该模块是在几年前创建的,当时我们必须分叉一些Lucene代码以允许简单的迁移路径,但现在它已经是一个空模块,仅依赖于各种常用分析器。是时候进行依赖关系的清理了,因此不再需要的模块已被移除:如果您正在使用它,只需将其从项目中移除,并包含来自Apache Lucene生态系统的所需分析器的直接依赖项。
接下来是什么?
您可以在我们的路线图页面上找到高级概述,或者检查此JIRA过滤器的详细分解。本质上,我们现在致力于OSGi兼容性和必须推迟到主要版本的可用性改进。