我使用的是
http://code.google.com/p/solr-php-client/
这个php client,当我循环添加100次的时候,还可以正常添加,但是如果循环1000次,如下:
for($i=0; $i<1000; $i++){
     
$part = new Apache_Solr_Document();      
  
$part->setField( 'title', "titleddddd".$i );
 
$part->setField('url', 'fdasfasfadsf'.$i);
 
$solr->addDocument( $part );     
}
$solr->commit();
 $solr->optimize();就会出现错误
出现错误了exception 'Exception' with message '"0" Status: Communication Error' in D:\xampp\htdocs\bookbiz\library\Apache\Solr\Service.php:389
Stack trace:
#0 D:\xampp\htdocs\bookbiz\library\Apache\Solr\Service.php(656): Apache_Solr_Service->_sendRawPost('http://localhos...', ' #1 D:\xampp\htdocs\bookbiz\library\Apache\Solr\Service.php(682): Apache_Solr_Service->add(' #2 D:\xampp\htdocs\bookbiz\app\modules\default\controllers\TdstestController.php(31): Apache_Solr_Service->addDocument(Object(Apache_Solr_Document))
#3 D:\xampp\htdocs\bookbiz\library\Zend\Controller\Action.php(513): TdstestController->indexAction()
#4 D:\xampp\htdocs\bookbiz\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('indexAction')
#5 D:\xampp\htdocs\bookbiz\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#6 D:\xampp\htdocs\bookbiz\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch()
#7 D:\xampp\htdocs\bookbiz\library\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run()
#8 D:\xampp\htdocs\bookbiz\index.php(46): Zend_Application->run()
#9 {main}

解决方案 »

  1.   

    那就分10次 commit, 有长度限制吧
      

  2.   


                    
    for($i=0; $i<1000; $i++){  
    $part = new Apache_Solr_Document();  
    $part->setFieldBoost( 'title', "titleddddd".$i );
    $part->setFieldBoost('url', 'fdasfasfadsf'.$i);
    $solr->addDocument( $part ); }
    $solr->commit();
     $solr->optimize();