0

我正在尝试将 solr 与 php 一起使用。我已经配置了我的 solr 应用程序,它工作正常。但是我无法使用 php 与 solr 进行通信。我尝试了许多扩展:pecl-solr、solr-php-client 和 Solarium。然而,没有人能够 ping 我的 solr 服务器。所有这一切,而我的 solr 服务器在 localhost:8080/solr 可用。我正在使用 tomcat 在 Windows 上运行它。(通过 php ping 时,我一直检查我的 tomcat 和 solr 服务,它们已启动并运行)

我想我在这里做一些非常基本的错误。我的 solr 应用程序是否需要在 xampp 的 htdocs 中?因为我将它放在我的 tomcat 服务器的 webapps 文件夹中。我真的不明白它会如何产生影响,因为我专门提供了在 solr-php-client 中 ping 的路径,如下所示:

 require_once( 'Apache/Solr/service.php' );


 $solr = new Apache_Solr_Service( 'localhost', '8080', '/solr' );
  var_dump($solr) ; 
  if ( ! $solr->ping() ) {
     echo 'Solr service not responding.';
      exit;
    }

我在运行此代码时收到“Solr 服务未响应”消息。有什么建议么 ?

更新:我在后台查看,发现为了获取内容,使用了以下 php 函数:file_get_contents 我进一步知道,当文件通过 URI 定位时,它可能会失败,因为许多服务器会因为安全原因阻止此命令担忧。xampp 也是这样吗?在我的本地机器上运行是?

4

2 回答 2

0

试试这个,我希望它对你有帮助,它对我有用。

$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr' );
  var_dump($solr) ; 
  if ( $solr->ping() ) {
     echo 'Solr Server Responding.';
      // your code
    }else{
      echo "Solr Server is not Running";
    }

从您的代码中删除require_once( 'Apache/Solr/service.php' );它。

于 2014-03-19T04:14:46.903 回答
0

由于您没有提及您的核心名称,因此您无法 ping 您的 solr 服务器。

require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr/CORE_NAME' 
 );
var_dump($solr) ;
if ( ! $solr->ping() ) {
 echo 'Solr service not responding.';
  exit;
}

您只需要添加核心名称

$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr/CORE_NAME');

一旦您传递了您创建的核心名称,它将开始为您工作。

于 2018-04-11T06:19:50.657 回答