CakeFest 2024: The Official CakePHP Conference

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocumentAjoute un document à l'index

Description

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

?>

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.
To Top