Структура индекса:
{
"documents": [
{
"doc_type": [
"dataset"
],
"title": [
"document_title"
],
"id": [
1234
],
"_childDocuments_": [
{
"parent_id": [
1234
],
"doc_type": [
"column"
],
"id": [
789
],
"attr_nm": [
"child_field_value"
],
},
]
}
]
}
Всякий раз, когда выполняется поиск / запрос, я всегда хочу вернуть родительский документ.Например, если я ищу 'child_field_value', я хочу получить родительский документ, а пользователь никогда не увидит дочерние документы.
Я могу заставить это работать для родителей.Например, если я ищу «document_title», я могу получить приведенную выше структуру, используя следующую настройку:
q=document_title
fl=*,[child parentFilter=doc_type:dataset]
qf=title^200 attr_nm
Если я попробую это с помощью ключевого слова запроса «child_field_value», я получу странную структуру, такую как:
"response": {
"numFound":2,
"start":0,
"docs":[
{
"parent_id":"1234",
"doc_type":"column",
"id":"123",
"attr_nm":"child_field_value",
},
{
"parent_id":"1234",
"doc_type":"column",
"id":"456",
"attr_nm":"child_field_value",
"_childDocuments_":[{
"parent_id":"1234",
"doc_type":"column",
"id":"124",
"attr_nm":"child_field_value",
}]
}
]
}
Как я могу гарантировать, что всегда получаю желаемые результаты даже при поиске в дочернем поле какого-либо значения?