1--TEST--
2SolrClient::addDocument() - Sending a document 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('comment_t', 'Lots of features');
34
35$doc->addChildDocument($doc2);
36$doc->addChildDocument($doc3);
37
38$doc4 = new SolrInputDocument();
39$doc4->addField('id', 'CTEST_4');
40$doc4->addField('comment_t', 'Child Child');
41
42$doc3->addChildDocument($doc4);
43
44$docs = $doc->getChildDocuments();
45$docs[0]->addField('one_more_field_t', 'testing');
46
47$updateResponse = $client->addDocument($doc);
48print_r($updateResponse->getRawRequest());
49print_r($updateResponse->getResponse());
50$client->commit();
51?>
52--EXPECTF--
53<?xml version="1.0" encoding="UTF-8"?>
54<add overwrite="true">
55  <doc>
56    <field name="id">CTEST_1</field>
57    <field name="title">Solr adds block join support</field>
58    <field name="content_type">parentDocument</field>
59    <doc>
60      <field name="id">CTEST_2</field>
61      <field name="comment_t">SolrCloud supports it too!</field>
62      <field name="one_more_field_t">testing</field>
63    </doc>
64    <doc>
65      <field name="id">CTEST_3</field>
66      <field name="comment_t">Lots of features</field>
67      <doc>
68        <field name="id">CTEST_4</field>
69        <field name="comment_t">Child Child</field>
70      </doc>
71    </doc>
72  </doc>
73</add>
74SolrObject Object
75(
76    [responseHeader] => SolrObject Object
77        (
78            [status] => %d
79            [QTime] => %d
80        )
81
82)