array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'solrclient.adddocument.php', 1 => 'SolrClient::addDocument', 2 => 'Adds a document to the index', ), 'up' => array ( 0 => 'class.solrclient.php', 1 => 'SolrClient', ), 'prev' => array ( 0 => 'class.solrclient.php', 1 => 'SolrClient', ), 'next' => array ( 0 => 'solrclient.adddocuments.php', 1 => 'SolrClient::addDocuments', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/solr/solrclient/adddocument.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PECL solr >= 0.9.2)
SolrClient::addDocument — Adds a document to the index
$doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponseThis method adds a document to the index.
docThe SolrInputDocument instance.
overwrite
Whether to overwrite existing document or not. If false there will be duplicates (several documents with the same ID).
PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.
$allowDups = false is the same as $overwrite = true
commitWithinNumber of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.
When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.
Returns a SolrUpdateResponse object or throws an Exception on failure.
Throws SolrClientException if the client had failed, or there was a connection issue.
Throws SolrServerException if the Solr Server had failed to process the request.
例1 SolrClient::addDocument() 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');
$updateResponse = $client->addDocument($doc);
// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();
print_r($updateResponse->getResponse());
?>上の例の出力は、 たとえば以下のようになります。
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)
例2 SolrClient::addDocument() example 2
<?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');
// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);
print_r($updateResponse->getResponse());
?>上の例の出力は、 たとえば以下のようになります。
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)