SolrClient::addDocument
(PECL solr >= 0.9.2)
SolrClient::addDocument — Ajoute un document à l'index
Description
$doc
[, bool $overwrite = true
[, int $commitWithin = 0
]] )Cette méthode ajoute un document à l'index.
Liste de paramètres
-
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).AvertissementPECL 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.
Valeurs de retour
Retourne un objet SolrUpdateResponse et lance une exception si une erreur survient.
Erreurs / Exceptions
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.
Exemples
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
)
)
Voir aussi
- SolrClient::addDocuments() - Ajoute une collection d'instances SolrInputDocument à l'index
- SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index