(PECL solr >= 0.9.2)
SolrClient::addDocument â Ajoute un document Ă l'index
$doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponseCette méthode ajoute un document à l'index.
docL'instance SolrInputDocument.
overwrite
Si l'on doit ou non écraser un document existant.
Si vaut false, il sera dupliquĂ© (plusieurs documents avec le mĂȘme ID).
PECL Solr < 2.0 $allowDups Ă©tait utilisĂ© Ă la place de $overwrite ; il s'agit de la mĂȘme fonctionnalitĂ©, mais avec une valeur opposĂ©e.
$allowDups = false est identique Ă $overwrite = true
commitWithinNombre de millisecondes aprĂšs lequel le document doit ĂȘtre validĂ©. Disponible depuis Solr 1.4. Par dĂ©faut, vaut 0 (dĂ©sactivĂ©).
Lorsque cette valeur est spĂ©cifiĂ©e, elle laisse le contrĂŽle Ă Solr sur le moment oĂč la validation doit ĂȘtre rĂ©alisĂ©e, permettant ainsi d'optimiser le nombre de validations, et donc, de mieux contrĂŽler les exigences de latence des mises Ă jour ; Solr va automatiquement rĂ©aliser une validation lorsque le plus vieil ajout du buffer est atteint.
Retourne un objet SolrUpdateResponse et lance une exception si une erreur survient.
Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problÚme avec la connexion.
Lance une exception SolrServerException si le serveur Solr a Ă©chouĂ© dans l'exĂ©cution de la requĂȘte.
Exemple #1 Exemple avec SolrClient::addDocument()
<?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);
// vous devriez valider ces modifications si vous n'utilisez pas $commitWithin
$client->commit();
print_r($updateResponse->getResponse());
?>Résultat de l'exemple ci-dessus est similaire à :
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)
Exemple #2 Exemple 2 avec SolrClient::addDocument()
<?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');
// Inutile d'appeler commit() car $commitWithin est passé ; ainsi,
// le serveur Solr va valider automatiquement dans les 10 secondes
$updateResponse = $client->addDocument($doc, false, 10000);
print_r($updateResponse->getResponse());
?>Résultat de l'exemple ci-dessus est similaire à :
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)