(PECL solr >= 2.3.0)
SolrInputDocument::addChildDocuments — Ajoute un tableau de documents enfants
Ajoute un tableau de documents enfants au document d'entrée actuel.
docs
Un array d'objets SolrInputDocument.
Aucune valeur n'est retournée.
Lance une SolrIllegalArgumentException en cas d'échec.
Lance une SolrException en cas d'échec interne.
Exemple #1 Exemple de SolrInputDocument::addChildDocuments()
<?php
include "bootstrap.php";
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_STORE_PATH,
);
$client = new SolrClient($options);
$product = new SolrInputDocument();
$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');
$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);
$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);
$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);
// ajoute les documents enfants
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);
// ajoute le bloc de document produit à l'index
$updateResponse = $client->addDocument(
$product,
true, // surchage si le document existe
10000 // valide le commit dans 10 secondes
);
print_r($updateResponse->getResponse());
Résultat de l'exemple ci-dessus est similaire à :
SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 5 ) )