(PECL solr >= 2.3.0)
SolrInputDocument::addChildDocuments β ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠΈΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
docsΠΠ°ΡΡΠΈΠ² (array) ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² SolrInputDocument.
Π€ΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ SolrIllegalArgumentException Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ SolrException Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ 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);
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±Π»ΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π² ΠΈΠ½Π΄Π΅ΠΊΡ
$updateResponse = $client->addDocument(
$product,
true, // ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
10000 // Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 10 ΡΠ΅ΠΊΡΠ½Π΄
);
print_r($updateResponse->getResponse());ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 5
)
)