SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Ajoute un document à l'index

Description

public function SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse

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).

Avertissement

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

commitWithin

Nombre 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.

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()

<?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
        )

)

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.