PHP curl_setopt()没有从SOLR

时间:2016-11-25 06:32:03

标签: php arrays curl php-curl

我使用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吗?

1 个答案:

答案 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,对于行示例,请参阅: