如何解决Hibernate Search 6 中的文档分数检索
我正在尝试从 5.11 移植到 HS 6.0,但遇到了以下问题。以前,在 HS 5.11 中,我执行以下操作来检索每个搜索结果的分数。
FullTextQuery fullTextQuery = createFullTextQuery(criteria);
fullTextQuery.setProjection(FullTextQuery.SCORE,FullTextQuery.THIS,FullTextQuery.DOCUMENT_ID);
fullTextQuery.setFirstResult((int)pageable.getOffset());
fullTextQuery.setMaxResults(pageable.getPageSize());
//FullTextQuery will log if org.hibernate.search.fulltext_query is set to DEBUG
projResultList = fullTextQuery.getResultList();
//getResultSize must go after getResultList or query will be executed twice
resultSize = fullTextQuery.getResultSize();;
Iterator projIter = projResultList.iterator();
int docId;
float score;
PatentDocDO doc;
while (projIter.hasNext()) {
projResult = (Object[]) projIter.next();
docRes = new PatentDocSearchResultDO();
score = (float) projEntry[0];
doc = (PatentDocDO) projEntry[1];
docId=(int) projResult[2];
docRes.setDoc(doc);
docRes.setRelevanceScore(score);
docRes.setDocId(docId);
results.add(docRes);
}
请注意,一切都在单个查询中完成。由于我的搜索查询非常复杂,因此从性能角度来看这很重要。在挖掘 HS 6 的文档时,我在查询/投影 DSL 中找不到与此等效的内容。我看到投影部分只返回分数,但这需要第二次搜索。我错过了什么吗? HS 6 中有没有办法在单个查询中做到这一点?顺便说一句...我正在使用 Lucene 后端。
谢谢, 基思 PS> 是的,我的用户是高级专利搜索者,了解评分相关的概念和挑战
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。