You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Jennifer Coston <Je...@raytheon.com> on 2016/11/18 16:01:06 UTC
Best Way to Read A Nested Structure from Solr?
Hello,
I am sure there have been many discussions on the best way to do this, but I am lost and need your advice. I have a nested Solr Document containing multiple levels of sub-documents. Here is a JSON example so you can see the full structure:
{
"id": "Test Library",
"description": "example of nested document",
"content_type": "library",
"authors": [{
"id": "author1",
"content_type": "author",
"name": "First Author",
"books": {
"id": "book1",
"content_type": "book",
"title": "title of book 1"
},
"shortStories": {
"id": "shortStory1",
"content_type": "shortStory",
"title": "title of short story 1"
}
},
{
"id": "author2",
"content_type": "author",
"name": "Second Author",
"books": {
"id": "book1",
"content_type": "book",
"title": "title of book 1"
},
"shortStories": {
"id": "shortStory1",
"content_type": "shortStory",
"title": "title of short story 1"
}
}]
}
I want to query for a document and retrieve the nested structure. I tried using the ChildDocumentTranformerFactory but it flattened the result to be just Library and all other documents as children:
{
"id": "Test Library",
"description": "example of nested document",
"content_type": "library",
"_childDocuments_":[
{"id": "author1",
"content_type": "author",
"name": "First Author"
},
{"id": "book1",
"content_type": "book",
"title": "title of book 1"
},
{
"id": "shortStory1",
"content_type": "shortStory",
"title": "title of short story 1"
},
{
"id": "author2",
"content_type": "author",
"name": "Second Author"
},
{
"id": "book1",
"content_type": "book",
"title": "title of book 1"
},
{
"id": "shortStory1",
"content_type": "shortStory",
"title": "title of short story 1"
}
]
}
Here are the query parameters I used:
q={!parent which='content_type:library'}
df=id
fl=*,[child parentFilter='content_type:library' childFilter='id:*']
wt=json
indent=true
What is the best way to read the nested structure from Solr? Do I need to do some sort of faceting?
Thank you,
Jennifer Coston
P.S. I am using Solr version 5.2.1