SolrClient::addDocument
Ajoute un document à l'index
&reftitle.description;
public SolrUpdateResponseSolrClient::addDocument
SolrInputDocumentdoc
booloverwrite&true;
intcommitWithin0
Cette méthode ajoute un document à l'index.
&reftitle.parameters;
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 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.
&reftitle.returnvalues;
Retourne un objet SolrUpdateResponse et lance une
exception si une erreur survient.
&reftitle.errors;
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.
&reftitle.examples;
Exemple avec SolrClient::addDocument example
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());
?>
]]>
&example.outputs.similar;
SolrObject Object
(
[status] => 0
[QTime] => 1
)
)
]]>
Exemple 2 avec SolrClient::addDocument
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());
?>
]]>
&example.outputs.similar;
SolrObject Object
(
[status] => 0
[QTime] => 1
)
)
]]>
&reftitle.seealso;
SolrClient::addDocuments
SolrClient::commit