我想使用特定字段对 solr 的前 100 个文档进行排序,但它对整个结果集进行排序,然后显示结果,以下是我的代码。
query1.setQuery(" Natural Language ");
query1.setStart(0);
query1.setRows(100);
int i=0;
query1.set("df","Text");
query1.setFields("PaperID","TotalPageRank");
query1.setSort("customrank", SolrQuery.ORDER.desc);
是否可以使用 solr 查询使用 customrank 字段对前 100 个文档进行排序?
您可以尝试使用查询重排序功能 https://lucene.apache.org/solr/guide/6_6/query-re-ranking.html。这允许您发出一个查询,检索前 N 个条目,然后根据第二个查询对这些条目重新排名。这通常用于在对这些条目应用昂贵的查询以进行重新排名之前,通过一个简单的查询来限制文档总数,但用例似乎足够相似。
文档页面上的示例的改编版本可能类似于(我无法对此进行测试,因此请添加注释并根据您的用例进行调整):
rq={!rerank reRankQuery=$rqq reRankDocs=100 reRankWeight=3}&rqq=_val_=customrank
您可能需要调整重新排名权重以使您的自定义排名对最终分数做出更多贡献,因为我认为您无法明确排序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)