(PECL solr >= 0.9.2)
SolrClient::addDocument — Ajoute un document à l'index
$doc
[, bool $overwrite
= true
[, int $commitWithin
= 0
]] )Cette méthode ajoute un document à l'index.
doc
L'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 fonctionalité, mais avec une valeur opposée.
$allowDups = false est identique à $overwrite = true
commitWithin
Nombre de millisecondes après lequel le document doit être valié. 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 eigences de latence des mises à jour ; Solr va automatiquement réaliser une validation lorsque le plus vieille 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() 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);
// vous devriez valider ces modifications si vous n'utilisez pas $commitWithin
$client->commit();
print_r($updateResponse->getResponse());
?>
L'exemple ci-dessus va afficher quelque chose de 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());
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 1 ) )