How to write nested schema.xml in solr?

user2230605 picture user2230605 · Mar 14, 2014 · Viewed 9.3k times · Source

How to write nested schema.xml in solr

The document in schema.xml says

<!-- points to the root document of a block of nested documents. Required for nested
document support, may be removed otherwise
-->
<field name="_root_" type="string" indexed="true" stored="false"/>

http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/collection1/conf/schema.xml?view=markup

Which can be used in

https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers

What will be schema.xml for nesting the following items:

  • Person string
  • Address
    • city string
    • postcode string

Answer

jencoston picture jencoston · Jul 28, 2016

I know this is an old question, but I ran into a similar issue. Modifying my solution for yours, the fields you need to add to your schema.xml are as follows:

 <field name="person" type="string" indexed="true" stored="true" />
 <field name="address" type="string" indexed="true" stored="true" multiValued="true"/> 
 <field name="address.city" type="string" indexed="true" stored="true" />
 <field name="address.postcode" type="string" indexed="true" stored="true" />

Then when you run it you should be able to add the following JSON to your Solr instance and see the matching output in the query:

{
  "person": "John Smith",
  "address": {
      "city": "San Diego",
      "postcode": 92093
    }
}