Как вложить документы в Solr?

В solr 6.6.0 я хочу использовать вложенные объекты для определенного ключа.

Итак, предположим, у меня есть один документ следующим образом:

{
    "ID": "16_nl",
    "countryIso": "AUS",
    "regionId": 30,
    "name": "test",
    "placeId": 50,
    "eventID": 100,
    "facilities": [12],
    "created": "2017-11-30T11:00:36.717Z",
    "modified": "2017-11-30T11:00:36.717Z"
}

Но теперь я хочу добавить дочерний документ в вышеуказанный документ с ключевым "предложением" следующим образом

{
    "ID": "16_nl",
    "countryIso": "AUS",
    "regionId": 30,
    "name": "test",
    "placeId": 50,
    "eventID": 100,
    "facilities": [12],
    "proposal": [{      
        "duration": 55,
        "price" : 300,
        "status":"VISIBLE"  
    }],
    "created": "2017-11-30T11:00:36.717Z",
    "modified": "2017-11-30T11:00:36.717Z"
}

Как я могу сделать это в Solr?

Я прошел http://yonik.com/solr-nested-objects/ и другие документы, и у меня есть следующие проблемы

  1. Я не понял, как мы должны сопоставить дочерний документ с ключом "предложение"?
  2. Я думаю, что такие поля, как "ID", "countryIso", "regionId" определены как обязательные в родительском документе, поэтому необходимо ли использовать эти поля также в дочерних документах?

1 ответ

Вы должны перечислить дочерние документы под специальным ключом "_childDocuments_". В Справочном руководстве Apache Solr вы найдете этот пример и подсказку "обратите внимание на специальный ключ _childDocuments_, необходимый для обозначения вложенных документов в JSON":

{
    "id": "1",
    "title": "Solr adds block join support",
    "content_type": "parentDocument",
    "_childDocuments_": [{
        "id": "2",
        "comments": "SolrCloud supports it too!"
    }]
}

Обратите внимание, что поле id должно иметь дочерний документ.

Затем используйте Блок Соединения Детей Query Parser, чтобы найти дочерние элементы по родительским атрибутам, и Блок Присоединения Родителя Query Parser, чтобы найти родителей по дочерним атрибутам. См. https://lucene.apache.org/solr/guide/6_6/other-parsers.html.

Другие вопросы по тегам