1

我是 Solr 的新手,我正在尝试使用 Solarium 将它与我的 PHP 应用程序集成。我尝试运行 ping 查询,但它失败并给出 Solr HTTP 错误:未找到 (404) 响应。

我的PHP代码如下:

    $config = array(
     "endpoint" => array("localhost" => array("host"=>"localhost",
     "port"=>8983, "path"=>"/solr", "core"=>"techproducts",)));

    try{
    $client = new Solarium_Client($config);
    }catch (Exception $e){
        echo $e->getMessage();
    }
    if ($client == null) {
        echo 'Client null';
    } else {
        echo 'Client created</br>';
        //v($client);
    }
    // create a ping query
    $ping = $client->createPing();
    if ($ping == null) {
        echo 'ping null';
    } else {
        echo 'ping created</br>';
        //v($ping);
    }
    // execute the ping query
    try{
        $result= $client->ping($ping);
        echo 'Ping query successful';
        echo '<br/><pre>';
        //var_dump($result->getData());
    }catch(Solarium_Exception $e){
        echo $e->getMessage();
    }

我的 Solr 服务器地址是:http://localhost:8983/solr/ 核心:techproducts

我得到这个输出: Client created ping created Solr HTTP error: Not Found (404) 谁能提出可能的解决方案?

4

1 回答 1

1

我猜你的solrconfig.xml文件中缺少 ping 处理程序。请检查。您可以进行相同的以下配置。

<!-- ping/healthcheck -->
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
    <lst name="invariants">
        <str name="q">solrpingquery</str>
    </lst>
    <lst name="defaults">
        <str name="echoParams">all</str>
    </lst>
    <!-- An optional feature of the PingRequestHandler is to configure the
         handler with a "healthcheckFile" which can be used to enable/disable
         the PingRequestHandler.
         relative paths are resolved against the data dir
      -->
    <!-- <str name="healthcheckFile">server-enabled.txt</str> -->
</requestHandler>

然后你可以ping solr。您可以在 url 中编辑核心名称。 点击这里

于 2015-08-13T13:11:37.293 回答