Как писать вложенные schema.xml в solr?

Как писать вложенные schema.xml в solr

В документе в schema.xml говорится

<!-- 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

Что можно использовать в

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

Что будет schema.xml для вложения следующих элементов:

  • Строка пользователя
  • Адрес
    • городская строка
    • строка почтового индекса

Ответ 1

Я знаю, что это старый вопрос, но я столкнулся с подобной проблемой. Изменив мое решение для ваших, поля, которые необходимо добавить в ваш schema.xml, следующие:

 <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" />

Затем, когда вы запустите его, вы сможете добавить следующий JSON в свой экземпляр Solr и посмотреть соответствующий результат в запросе:

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

Ответ 2

But the above solution doesn't work with list of addresses. For example, if I 
add a content like : 
curl http://localhost:8983/solr/demo/update/json/docs?commitWithin=3000 -d '
[
  {"person": "John Smith",
   "address": 
    [{
      "city": "San Diego",
      "postcode": 92093
    },{
      "city": "Bangalore",
      "postcode": 560006
    }]
  }
]'

It throws an error saying : ERROR: [doc=2] multiple values encountered for non 
multiValued field address.city: [San Diego, Bangalore]