使用Solr的用PHP(Using Solr with PHP)

2019-11-01 07:42发布

我试图使用Solr的用PHP。 我已经配置我的Solr的应用程序,它的正常工作。 但是我不能够与使用PHP Solr的沟通。 我已经尝试了一些扩展:PECL-的Solr,Solr的-PHP客户端和日光浴室。 但是没有人能ping通,即使我的Solr服务器。 所有这一切,而我的Solr的服务器可在本地主机:8080 / Solr的。 我与Tomcat的Windows上运行它。 (我已经检查了我的tomcat和Solr服务,所有的,而当通过PHP执行ping命令,他们启动并运行)

我想我在这里做一些很基本的错误。 请问我的Solr的应用程序必须在XAMPP htdocs中? 因为我有它在我的Tomcat服务器的web应用文件夹内。 我真的不看它如何能有所作为,因为我专门提供的路径在这样的Solr的PHP客户端来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呢? 运行我的本地机器上?

Answer 1:

试试这个,我希望它会帮助你,和它的工作对我来说。

$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' ); 这个。



Answer 2:

因为你没有提到你的名字的核心你是不是能够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');

一旦你通过你创建的核心名称将开始为你工作。



文章来源: Using Solr with PHP