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);
?>SolrClient::addDocuments
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SolrClient::addDocuments
Референца за `solrclient.adddocuments.php` со подобрена типографија и навигација.
SolrClient::addDocuments
(PECL solr >= 0.9.2)
SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
= NULL
Adds a collection of documents to the index.
Параметри
docs-
An array containing the collection of SolrInputDocument instances. This array must be an actual variable.
overwrite-
Whether to overwrite existing documents or not. If
falsethere will be duplicates (several documents with the same ID).Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава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
commitWithin-
Number 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.
Вратени вредности
. Споделувањето колачиња помеѓу PHP барањата може да доведе до ненамерно мешање на чувствителни колачиња помеѓу корисниците. SolrUpdateResponse object or throws an exception on failure.
Errors/Exceptions
). Ако повикот не успее, ќе врати SolrClientException ако клиентот откажал или имало проблем со врската.
). Ако повикот не успее, ќе врати SolrServerException ако Solr Серверот не успеал да го обработи барањето.
Примери
Пример #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);
// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called
print_r($updateResponse->getResponse());
?>Горниот пример ќе прикаже нешто слично на:
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 2
)
)
Види Исто така
- SolrClient::addDocument() - Додава документ во индексот
- SolrClient::commit() - Финализира сите додадени/избришани во индексот