Solr/Lucene 有没有办法返回所选文档的排名而不是完整结果?
我有兴趣使用查询 q 来查询 Solr,并绘制当返回 {10, 20, 30, ...} 文档时对一组文档 D 的召回情况。
目前,我得到了完整的结果,即返回的 docids 列表(通过 solrpy),并迭代它以查找 D 的排名,即来自 D 的映射到搜索结果中的索引。我并不严格要求映射,只要求映射等级。
有没有办法让 Solr/Lucene 返回一组 ID 的排名而不是完整结果?
解决此问题的其他方法:
- 对于查询,返回文档 d 的排名
- 对于达到指定排名的查询,返回文档 d 是否
- 存在查询q1结果最多指定数量的记录,返回另一个查询q2匹配的记录数量
I am interested in querying Solr with query q and charting its recall of a set of documents D when {10, 20, 30, ...} documents are returned.
Currently, I am having the full results, i.e. a list of docids returned (through solrpy), and iterate through it to find the ranks of D, i.e. a mapping from D to their indices in the search results. I do not strictly require the mapping, only mapped ranks.
Is there a way to have Solr/Lucene return ranks for a set of IDs instead of the full results?
Other ways of approaching this problem:
- For a query, return the rank of document d
- For a query up to a specified rank, return whether or not document d is present
- From a query q1 result up to a specified number of records, return the number of records matched by another query q2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以通过
score
字段检索排名。附加
&fl=KeyFieldName,score
以检索文档 ID 和分数到您的查询。如果您需要所有字段,请将&fl=*,score
附加到您的查询中。有关详细信息,请参阅 http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_see_the_relevancy_scores_for_search_results。
You can retrieve rank by
score
field.Append
&fl=KeyFieldName,score
to retrieve document id and score to your query. If you need all fields append&fl=*,score
to your query.See http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_see_the_relevancy_scores_for_search_results for details.
不,我想不出 SOLR 或 Lucene 的方法来做到这一点。
我认为最简单的解决方案是用一个简单的 HashSet 自己编程......
No I cannot think of a SOLR or Lucene way to do this.
I think the simplest solution here is to program this yourself with a simple HashSet...