2012-12-17 88 views
0

我目前只是在solr文件夾的「example」文件夾中運行「start.jar」。 嘗試使用PHP的pecl solr擴展聯繫solr時,我在擴展安裝的「php_solr_client.c」文件中收到異常。 我使用SOLR 3.1, 相信的配置是正確的。 「主機名」 - 本地主機,端口 - 8983,路徑 - '/ Solr的/'是否需要使用獨立碼頭安裝來使用php pecl solr擴展?

我可以在「HTTP訪問Solr管理://本地主機: 8983/solr/admin /「

我擔心的是我的機器沒有列出8983作爲開放端口。這不奇怪嗎? ? 這是我的連接配置..

<?php 
$options = array 
(
'hostname' => 'localhost', 
'port'  => 8983, 
'path'  => '/solr/' 
); 

$client = new SolrClient($options); 

$doc = new SolrInputDocument(); 

$doc->addField('id', 334455); 
var_dump($doc->toArray()); 
try{ 
$pingresponse = $client->ping(); 
$updateResponse = $client->addDocument($doc); 
} 
catch(Exception $e){ 
     var_dump($e->getInternalInfo()); 
} 
//print_r($updateResponse->getResponse()); 
?> 

這是輸出我得到。

array (size=3) 
    'document_boost' => float 0 
    'field_count' => int 1 
    'fields' => 
    array (size=1) 
     0 => 
     object(SolrDocumentField)[3] 
      public 'name' => string 'id' (length=2) 
      public 'boost' => float 0 
      public 'values' => 
      array (size=1) 
       ... 

(!) Warning: SolrClient::ping(): in /var/www/html/simple/new.php on line 16 
Call Stack 
# Time Memory Function Location 
1 0.0003 234560 {main}() ../new.php:0 
2 0.0005 239096 SolrClient->ping() ../new.php:16 

array (size=3) 
    'sourceline' => int 1704 
    'sourcefile' => string '/builddir/build/BUILD/php-pecl-solr-1.0.2/solr-1.0.2/php_solr_client.c' (length=70) 
    'zif_name' => string 'zim_SolrClient_ping' (length=19) 

回答

0

SolrClient並不關心你的Solr安裝在哪裏或者它是什麼服務。您可以定義連接參數in the constructor

如果您在連接時遇到問題,請檢查您使用的託管Solr的參數(無論是Jetty還是烤馬鈴薯)的參數都與您傳遞給構造函數的參數匹配。

+0

如果我可以在「http:// localhost:8983/solr /」訪問solr「歡迎頁面」,那麼我的'路徑'和'主機名'應該是什麼?我需要定義陣列中所有必需的參數..? – sharky

+0

請[閱讀關於URI中的組件](http://en.wikipedia.org/wiki/URI_scheme),然後你就會明白'http:// localhost:8983/solr /'的各個部分被調用了。這是您應該擁有的基本互聯網知識。 – Charles

+0

我知道這一點,我很困惑的是,我必須將擴展指向solr的主目錄。 ? 事情根據此配置,但它不工作。 – sharky