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 — Додава колекција од SolrInputDocument инстанци во индексот
= NULL
$docs, bool $overwrite = true, int $commitWithin = 0): voidДодава колекција од SolrInputDocument инстанци во индексот
Параметри
docs-
Додава колекција од документи во индексот.
overwrite-
Низа што ја содржи колекцијата од SolrInputDocument инстанци. Оваа низа мора да биде вистинска променлива.
falseДали да се презапишат постоечките документи или не. АкоГи ескејпува специјалните знаци во стринг за употреба во 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-
ќе има дупликати (неколку документи со исти ID).
Број на милисекунди во кои автоматски да се изврши commit на овој документ. Достапно од Solr 1.4. Стандардно (0) значи оневозможено.
Вратени вредности
. Споделувањето колачиња помеѓу PHP барањата може да доведе до ненамерно мешање на чувствителни колачиња помеѓу корисниците. SolrUpdateResponse Кога оваа вредност е специфицирана, го остава контролата на тоа кога да се изврши commit на самиот Solr, оптимизирајќи го бројот на commits на минимум додека се исполнуваат барањата за латентност на ажурирање, и Solr автоматски ќе изврши commit кога најстариот додаток во тампонот е доспеан.
Errors/Exceptions
). Ако повикот не успее, ќе врати SolrClientException ако клиентот откажал или имало проблем со врската.
). Ако повикот не успее, ќе врати SolrServerException ако Solr Серверот не успеал да го обработи барањето.
Примери
Пример #1 објект или фрла исклучок при неуспех. 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::addDocuments() - Додава документ во индексот
- SolrClient::addDocument() - Финализира сите додадени/избришани во индексот