7.5.2.4. 了解结果


如果查询的结果不是您预期的,luke 工具 对了解结果很有用。但是,Hibernate Search 还允许您访问给定结果(给定查询中)的 Lucene Explanation 对象。此类对于 Lucene 用户而言比较先进,但可以很好地理解对象的评分。您可以通过两种方式访问给定结果的说明对象:

  • 使用 fullTextQuery.explain(int) 方法
  • 使用投射

第一种方法将文档 ID 用作参数并返回说明对象。文档 ID 可使用投影和 FullTextQuery.DOCUMENT_ID 常量来检索。

警告

文档 ID 与实体 ID 无关。注意不要混淆这些概念。

在第二种方法中,您使用 FullTextQuery.EXPLANATION 常数来预测说明对象。

示例:使用 Projection 检索 Lucene 解释对象

FullTextQuery ftQuery = s.createFullTextQuery( luceneQuery, Dvd.class )
        .setProjection(
             FullTextQuery.DOCUMENT_ID,
             ,
             FullTextQuery.THIS );
@SuppressWarnings("unchecked") List<Object[]> results = ftQuery.list();
for (Object[] result : results) {
    Explanation e = (Explanation) result[1];
    display( e.toString() );
}
Copy to Clipboard Toggle word wrap

只有在需要时才使用说明对象,因为它与再次运行 Lucene 查询的成本大致相同。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat