1--TEST-- 2SolrClient::addDocuments() - Sending multiple documents with child documents 3--SKIPIF-- 4<?php require_once 'skip.if.server_not_configured.inc'; ?> 5--FILE-- 6<?php 7 8require_once "bootstrap.inc"; 9 10$options = array 11( 12 'hostname' => SOLR_SERVER_HOSTNAME, 13 'login' => SOLR_SERVER_USERNAME, 14 'password' => SOLR_SERVER_PASSWORD, 15 'port' => SOLR_SERVER_PORT, 16 'path' => SOLR_SERVER_PATH 17); 18 19$client = new SolrClient($options); 20 21$doc = new SolrInputDocument(); 22 23$doc->addField('id', 'CTEST_1'); 24$doc->addField('title', 'Solr adds block join support'); 25$doc->addField('content_type', 'parentDocument'); 26 27$doc2 = new SolrInputDocument(); 28$doc2->addField('id', 'CTEST_2'); 29$doc2->addField('comment_t', 'SolrCloud supports it too!'); 30 31$doc3 = new SolrInputDocument(); 32$doc3->addField('id', 'CTEST_3'); 33$doc3->addField('content_type', 'parentDocument'); 34$doc3->addField('comment_t', 'Lots of features'); 35 36$doc4 = new SolrInputDocument(); 37$doc4->addField('id', 'CTEST_4'); 38$doc4->addField('comment_t', 'Cool features'); 39 40$doc->addChildDocument($doc2); 41$doc3->addChildDocument($doc4); 42 43$documents = [$doc, $doc3]; 44 45$updateResponse = $client->addDocuments($documents); 46print_r($updateResponse->getRawRequest()); 47print_r($updateResponse->getResponse()); 48$client->commit(); 49?> 50--EXPECTF-- 51<?xml version="1.0" encoding="UTF-8"?> 52<add overwrite="true"> 53 <doc> 54 <field name="id">CTEST_1</field> 55 <field name="title">Solr adds block join support</field> 56 <field name="content_type">parentDocument</field> 57 <doc> 58 <field name="id">CTEST_2</field> 59 <field name="comment_t">SolrCloud supports it too!</field> 60 </doc> 61 </doc> 62 <doc> 63 <field name="id">CTEST_3</field> 64 <field name="content_type">parentDocument</field> 65 <field name="comment_t">Lots of features</field> 66 <doc> 67 <field name="id">CTEST_4</field> 68 <field name="comment_t">Cool features</field> 69 </doc> 70 </doc> 71</add> 72SolrObject Object 73( 74 [responseHeader] => SolrObject Object 75 ( 76 [status] => %d 77 [QTime] => %d 78 ) 79 80)