Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr/Lucene是否有方法返回所选文档的排名而不是完整结果?_Solr_Lucene_Rank - Fatal编程技术网

Solr/Lucene是否有方法返回所选文档的排名而不是完整结果?

Solr/Lucene是否有方法返回所选文档的排名而不是完整结果?,solr,lucene,rank,Solr,Lucene,Rank,我感兴趣的是使用查询q查询Solr,并在返回{10,20,30,…}文档时绘制它对一组文档D的调用图 目前,我得到了完整的结果,即返回的docid列表(通过solrpy),并对其进行迭代以找到D的秩,即搜索结果中从D到其索引的映射。我不严格要求映射,只需要映射列 有没有办法让Solr/Lucene为一组ID返回等级而不是完整的结果 处理此问题的其他方法: 对于查询,返回文档d的排名 对于达到指定等级的查询,返回是否存在文档d 从查询q1结果到指定数量的记录,返回与另一个查询q2匹配的记录数 不

我感兴趣的是使用查询q查询Solr,并在返回{10,20,30,…}文档时绘制它对一组文档D的调用图

目前,我得到了完整的结果,即返回的docid列表(通过solrpy),并对其进行迭代以找到D的秩,即搜索结果中从D到其索引的映射。我不严格要求映射,只需要映射列

有没有办法让Solr/Lucene为一组ID返回等级而不是完整的结果

处理此问题的其他方法:

  • 对于查询,返回文档d的排名
  • 对于达到指定等级的查询,返回是否存在文档d
  • 从查询q1结果到指定数量的记录,返回与另一个查询q2匹配的记录数

    • 不,我想不出一个SOLR或Lucene的方法来做到这一点。
      我认为这里最简单的解决方案是自己用一个简单的HashSet来编程…

      您可以通过
      得分
      字段检索排名

      追加
      &fl=KeyFieldName,score
      以检索查询中的文档id和分数。如果需要所有字段追加
      &fl=*,则在查询中添加分数


      有关详细信息,请参阅。

      +1对于这样一个不寻常的问题,请参阅。请问您打算解决什么问题?\通常,我想记录Solr在不同查询下对所选文档的调用情况。更具体地说,我正在分析为计算语言学工作收集的数据,这涉及为语言受限的查询找到最好的文章。我需要能够构造不同的查询,并确定它们如何解决我的问题。嗯,使用Lucene库似乎是一个更好的选择。分数字段为我提供了比我需要的更多的信息。我实际上并不需要列表结果,我只需要知道某个特定结果的排名<因此,code>&fl=KeyFieldName
      足以让我查看结果。但是,如果有数千个结果,那么从服务器传回的信息就比需要的多得多,只是为了知道某个KeyFieldName值出现在什么级别。散列会有什么帮助?假设我在一个字段上使用排序查询索引,我想知道某个文档在列表中的排名。这可能是您已经在做的事情:将所有D的codid放入一个(HashSet)集中,然后迭代SOLR结果集并检查ID是否在您的集中。如果要深入结果集(许多页面),请使用SOLR光标。