pysolr中的文档总数

时间:2017-09-23 11:56:20

标签: python-2.7 solr pysolr

如何获取与给定查询匹配的文档总数。我使用了以下查询:

result = solr.search('ad_id : 20')
print(len(result))

由于默认返回值为“10”,因此输出仅为10,但计数为4000.如何获得总计数?

4 个答案:

答案 0 :(得分:2)

results object from pysolr has a hits property that contains the total number of hits,无论返回多少文档。这在Solr的原始响应中命名为numFound

您的解决方案并不适合具有更大数据集的任何内容,因为它要求您检索所有文档,即使您不需要它们或想要显示他们的内容。

答案 1 :(得分:1)

计数存储在numFound变量中。请使用以下代码:

result = solr.search('ad_id : 20')
print(result.raw_response['response']['numFound'])

答案 2 :(得分:1)

@MatsLindh提到-

result = solr.search('ad_id : 20')
print(result.hits)

答案 3 :(得分:0)

终于得到了答案:

在查询结尾处添加了rows=1000000

result = solr.search('ad_id : 20', rows=1000000)

但是如果行大于此值,则应在查询中更改该数字。这可能是一个糟糕的解决方案,但有效。 如果有人有更好的解决方案,请回复。