我想使用特定字段对 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 个文档进行排序?
最佳答案
您可以尝试使用Query Re-Ranking feature 。这允许您发出一个查询,检索前 N 个条目,然后根据第二个查询对这些条目重新排名。这通常用于在对这些条目应用昂贵的查询以进行重新排名之前,通过一个简单的查询来限制文档总数,但用例似乎足够相似。
文档页面上示例的改编版本可能类似于(我无法对此进行测试,因此请添加针对您的用例进行调整的注释):
rq={!rerank reRankQuery=$rqq reRankDocs=100 reRankWeight=3}&rqq=_val_=customrank
您可能需要调整重新排名权重,以使您的自定义排名对最终得分做出更多贡献,因为我认为您无法明确排序
关于solr - 如何根据特定字段对 solr 查询的前 100 个结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47130637/