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

Reply via email to