Solr的。什么意思是numfound?

时间:2014-01-03 19:36:08

标签: java solr

我尝试了解solr官方教程。

我查询:

http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=name,id

并看下一个回复:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">125</int>
<lst name="params">
<str name="fl">name,id</str>
<str name="indent">on</str>
<str name="q">*</str>
</lst>
</lst>
<result name="response" numFound="28" start="0">
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
<doc>...</doc>
</result>
</response>

为什么numfound等于28但是doc号是10?

2 个答案:

答案 0 :(得分:4)

如果您将查询更改为

http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=name,id&rows=1000000

rows=参数指定要返回的结果数。使用值1000000,您将有效地获取所有文档(不仅仅是前10个,这是默认值)。

如果您想要更加小心,可以阅读numFound参数,然后进行多次调用以使用

返回数据块
http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=name,id&start=0
http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=name,id&start=10
http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=name,id&start=20

这将分别返回10,10和8个文档。

答案 1 :(得分:2)

numFound表示搜索索引中与您的查询匹配的文档数。但是,Solr仅返回结果中指定数量的文档。如果不设置参数,则使用默认值;一切都是可配置的,可以通过查询字符串或查询配置(参见solrconfig.xml)。

通过分页参数获取这些结果,特别是startrows