Hello, May https://solr.apache.org/guide/8_0/function-queries.html#childfield-field-function work in your case?
On Tue, Mar 8, 2022 at 3:11 PM Pranaya Behera <behera.pran...@gmail.com> wrote: > I have the documents as parent-child relationship: > https://gist.github.com/shadow-fox/fb525a7efe66622230e61d6253b6cfa9 > > How to sort the parent (type_s:product)s based on the grandchildren > (type_s:vendor) field value ? > > |parent = type_s: product children = type_s: sku grandchildren = > type_s:storage type_s:vendor example parent document with all the > children. | > > |<doc> <field name="id">10</field> <field name="type_s">product</field> > <field name="BRAND_s">Nike</field> <!-- nesting skus in product --> > <doc> <field name="id">11</field> <field name="type_s">sku</field> > <field name="COLOR_s">Red</field> <field name="SIZE_s">XL</field> <!-- > nesting locations into sku --> <doc> <field name="id">13</field> <field > name="type_s">storage</field> <field name="STATE_s">CA</field> <field > name="QTY_i">10</field> </doc> <doc> <field name="id">14</field> <field > name="type_s">storage</field> <field name="STATE_s">NY</field> <field > name="QTY_i">0</field> </doc> <doc> <field name="id">15</field> <field > name="type_s">vendor</field> <field name="NAME_s">Bob</field> <field > name="PRICE_i">20</field> </doc> <doc> <field name="id">16</field> > <field name="type_s">vendor</field> <field name="NAME_s">Alice</field> > <field name="PRICE_i">22</field> </doc> </doc> <doc> <field > name="id">12</field> <field name="type_s">sku</field> <field > name="COLOR_s">Blue</field> <field name="SIZE_s">XL</field> <!-- nesting > locations into sku --> <doc> <field name="id">17</field> <field > name="type_s">storage</field> <field name="STATE_s">CA</field> <field > name="QTY_i">0</field> </doc> <doc> <field name="id">18</field> <field > name="type_s">storage</field> <field name="STATE_s">NY</field> <field > name="QTY_i">100</field> </doc> <doc> <field name="id">19</field> <field > name="type_s">vendor</field> <field name="NAME_s">Bob</field> <field > name="PRICE_i">25</field> </doc> <doc> <field name="id">20</field> > <field name="type_s">vendor</field> <field name="NAME_s">Alice</field> > <field name="PRICE_i">28</field> </doc> </doc> <!-- nesting vendors into > product --> </doc> | > > The query: > > |{!parent which=type_s:product} +COLOR_s:Blue +{!parent which=type_s:sku > v='+QTY_i:[10 TO *] +STATE_s:CA'} | > > The result: > > |[ { "id": "21", "type_s": "product", "BRAND_s": "Nike", "_version_": > 1726713699507372000 }, { "id": "32", "type_s": "product", "BRAND_s": > "Puma", "_version_": 1726713699562946600 } ] | > > I want the results to be sorted by the matched |type_s:sku document|'s > |children document type_s:vendor AND NAME_s:Alice| docs |PRICE_i| field > in descending. > > I have tried: > > |{!parent which=type_s:product score=max v=ā+type_s:sku > +{!func}PRICE_iā} desc | > > |{!parent which=type_s:product score=max v='{!parent which=type_s:sku > v='type_s:vendor AND NAME_s:Alice'}+{!func}PRICE_i' asc | > > However it gives "error in sort". > -- Sincerely yours Mikhail Khludnev