SolrClient
在线手册:中文 英文
PHP手册

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocumentsAdds a collection of SolrInputDocument instances to the index

说明

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

Adds a collection of documents to the index.

参数

docs

An array containing the collection of SolrInputDocument instances. This array must be an actual variable.

allowDups

If FALSE duplicates will be overwritten.

commitWithin

Number of milliseconds within which to commit the documents to the index. This was only available since Solr 1.4

返回值

Returns a SolrUpdateResponse object on success and throws a SolrClientException on failure.

范例

Example #1 SolrClient::addDocuments() example

<?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());

?>

以上例程的输出类似于:

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

)

参见


SolrClient
在线手册:中文 英文
PHP手册
PHP手册 - N: Adds a collection of SolrInputDocument instances to the index

用户评论:

bjorn at bjorn-erik dot biz (23-Sep-2010 02:07)

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);
?>