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)