# SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Ajoute une collection d'instances SolrInputDocument à l'index

### Description

public SolrClient::addDocuments(array `$docs`, bool `$overwrite` = `true`, int `$commitWithin` = 0): void

Ajoute une collection de documents à l'index.

### Liste de paramètres

`docs`

  Un tableau contenant la collection d'instances SolrInputDocument. Ce tableau doit être une variable réelle.

`overwrite`

  Si l'on doit écraser les documents ou non. Si vaut `false`, les documents seront dupliqués (plusieurs documents avec le même ID).

  Avertissement

  PECL Solr < 2.0 $allowDups était utilisé au lieu de $overwrite, qui remplissait exactement la même fonctionnalité, mais à l'opposé.

  $allowDups = false est identique à $overwrite = true

`commitWithin`

  Nombre de millisecondes d'attente avant de valider automatiquement ce document. Disponible depuis Solr 1.4. Par défaut, vaut 0, ce qui signifie que ce mécanisme est désactivé.

  Lorsque cette valeur est spécifiée, le contrôle du moment de la validation est laissé à Solr, cherchant à optimiser le nombre de validations à son minimum, tout en gardant une exigence forte concernant la latence des mises à jour, et Solr fera automatiquement une validation lorsque le plus vielle ajout du buffer est atteint.

### Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, 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::addDocuments()

`<?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');
$doc2 = clone $doc;
$doc2->deleteField('id');
$doc2->addField('id', 334456);
$docs = array($doc, $doc2);
$updateResponse = $client->addDocuments($docs);
// Aucune modification ne sera écrite sur le disque tant que l'argument $commitWithin ne soit passé, ou la méthode SolrClient::commit appelée.
print_r($updateResponse->getResponse());
?>`

Résultat de l'exemple ci-dessus est similaire à :

    SolrObject Object
    (
        [responseHeader] => SolrObject Object
            (
                [status] => 0
                [QTime] => 2
            )

    )

### Voir aussi

- SolrClient::addDocument() - Ajoute un document à l'index
- SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index