0

phpでsolrを使おうとしています。solrアプリケーションを構成しましたが、正常に動作しています。ただし、phpを使用してsolrと通信することはできません。私はいくつかの拡張機能を試しました:pecl-solr、solr-php-client、Solarium。しかし、誰も私のSolrサーバーにpingを送信することさえできませんでした。私の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 に答える