我使用PHP cURL 从 Solr 检索搜索结果数组。
- cURL Version : 7.47.1
以下代码正在搜索特定城市的商店总数。 请看我的代码..
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://localhost:8983/solr/Search/select?q=searchshop%3A*&fq=" . $encode_fq_city . "&wt=php&fl=LoginInfoId");
curl_setopt($ch1, CURLOPT_HEADER, false);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
$shop = curl_exec($ch1);
curl_close($ch1);
print_r($shop);
我print_r
$shop_arr
数组,结果只显示10条记录。实际的Solr result_array
包含14条记录。
还附加结果数组..
[response] => Array
(
[numFound] => 14
[start] => 0
[docs] => Array
(
[0] => Array
(
[LoginInfoId] => 246
)
[1] => Array
(
[LoginInfoId] => 230
)
[2] => Array
(
[LoginInfoId] => 236
)
[3] => Array
(
[LoginInfoId] => 217
)
[4] => Array
(
[LoginInfoId] => 241
)
[5] => Array
(
[LoginInfoId] => 219
)
[6] => Array
(
[LoginInfoId] => 239
)
[7] => Array
(
[LoginInfoId] => 231
)
[8] => Array
(
[LoginInfoId] => 232
)
[9] => Array
(
[LoginInfoId] => 257
)
)
)
结果显示[numfound]=14
,但只显示10条记录。
在我的场景中是否有任何错误从Solr获取result_array
到PHP?
是cURL Bug吗?
答案 0 :(得分:1)
Solr默认返回10个文档:
<强>行强>
此参数用于对查询的结果进行分页。它指定完整结果集中的每个请求返回客户端的最大文档数。您可以将其视为页面中显示的最大结果数。
默认值为“10”,如果未指定参数,则使用该值。如果您想告诉Solr从没有上限的查询中返回所有可能的结果,请将行指定为10000000或高于可能的预期行数的其他一些非常大的值。
因此,在您的查询中添加一个rows参数,例如rows=100
:
curl_setopt($ch1, CURLOPT_URL, "http://localhost:8983/solr/Search/select?q=searchshop%3A*&fq=" . $encode_fq_city . "&wt=php&fl=LoginInfoId&rows=100");
参考文献:
更新:如果您想进行永久性更改,可以通过编辑solrconfig.xml
来配置Solr,对于行示例,请参阅: