solr - 如何根据特定字段对 solr 查询的前 100 个结果进行排序?

标签 solr solrj

我想使用特定字段对 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/

相关文章:

java - Solr读取超时(仅在生产环境中)

java - SolrJ 从 solr 查询中获取所有结果文档的文档分数

java - 多个应用程序中的内存泄漏

java - Embedded Solr Server 的使用是否过时且不推荐?

java - Solr 如何使用邻近搜索和通配符进行 eDisMax 查询?

java - Apache Solr 文件未建立索引或 "uploaded"

java - 使用 solrj 检索 json 格式的 SolrDocument

elasticsearch - Lucene/Solr搜索文档创建

solr - org.apache.solr.common.SolrException : Error loading class 'org. apache.solr.handler.dataimport.DataImportHandler

solr - SOLR中如何处理 "Document contains at least one immense term"?