Hi SOLR Community, I'm experimenting with solr 8.10 and trying to get a query pattern with child docs to work. An example of a nested document structure I'd like to search is below. In this example, there will only be two levels, child of type:post and /comments children. { "id": "post1", "type": "post", "post_en": "I put lemon on my apple slices to keep them fresh", "comments": [ { "id": "comment1", "type": "comment", "comment_en": "Lime works too" }, { "id": "comment2", "type": "comment", "comment_en": "Does it work for pears?" } ] }
What I'd like is to be able to do keyword search for /lemon apple/ and only return the parent; /lemon lime/ and return the parent and comment1; /lemon pear/ and return the parent and comment2; /lime pear/ and return the parent, comment1, and comment2. And /lime gum/ should return nothing (as if it were an AND query). Additionally, this should all be done with relevance. I've tried a few combinations of nested docs from this documentation <https://solr.apache.org/guide/8_10/searching-nested-documents.html>, but am having trouble getting this to work. I wonder if I'm asking more from block join/child doc transformer than it currently supports, or perhaps I'm just missing something. Can someone familiar with nesting documents help me out? I've included my schema below as well. Thanks! Stephen <?xml version="1.0" encoding="UTF-8" ?> <schema name="ChildTest" version="1.5"> <fields> <field name="id" type="string" required="true" docValues="true"/> <dynamicField name="*_en" type="text_en" large="true" omitNorms="true" /> <field name="username" type="string" docValues="true" /> <field name="type" type="string" docValues="true" /> <field name="_version_" type="long" /> <!-- child docs --> <field name="_root_" type="string" indexed="true" stored="false" docValues="false" /> <field name="_nest_path_" type="_nest_path_" /> <field name="_nest_parent_" type="string" indexed="true" stored="true" /> </fields> <uniqueKey>id</uniqueKey> <types> <fieldType name="_nest_path_" class="solr.NestPathField" /> <fieldType name="long" class="solr.LongPointField" /> <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.SnowballPorterFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.SnowballPorterFilterFactory"/> </analyzer> </fieldType> </types> </schema>