PHP 5.6.0RC3 is available

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocumentsاضافه کردن مجموعه نمونه‌های SolrInputDocument به اندیس

Description

public void SolrClient::addDocuments ( array $docs [, bool $allowDups = false [, int $commitWithin = 0 ]] )

اضافه کردن مجموعه اسناد به اندیس.

Parameters

docs

آرایه شامل مجموعه نمونه‌های SolrInputDocument. این آرایه باید آرایه واقعی باشد.

allowDups

اگر FALSE باشد کپی‌ها بازنویسی می‌شوند.

commitWithin

تعداد میلی‌ثانی‌های برای اضافه کردن اسناد به اندیس. تنها از زمان Solr 1.4 در دسترس است

Return Values

بازگرداندن شی SolrUpdateResponse در صورت موفقیت و ایجاد SolrClientException در صورت خطا.

Examples

Example #1 مثال SolrClient::addDocuments()

<?php

$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id'334456);

$docs = array($doc$doc2);

$updateResponse $client->addDocuments($docs);

print_r($updateResponse->getResponse());

?>

The above example will output something similar to:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

See Also

add a note add a note

User Contributed Notes 1 note

up
0
bjorn at bjorn-erik dot biz
3 years ago
If you want to add a bunch of documents from a database, this would be the way to go, assuming you have fetched the records from the database and put them in an array called $recordset:

<?php
foreach ($recordset as $key=>$value){
  
$docs_array[$key] = new SolrInputDocument();
  
$docs_array[$key]->addField('id', $value['document_id']);
  
$docs_array[$key]->addField('name',$value['document_name']);
}
$client->addDocuments($docs_array);
?>
To Top