Do you have any exception? My gut feeling that it's an implementation limitation.
On Mon, Nov 28, 2022 at 7:16 AM Chatree Srichart <chatree.srich...@gmail.com> wrote: > Hello Mikhail, > > For the example nested documents: > > Example Indexing Syntax: Pseudo-Fields > > https://solr.apache.org/guide/8_11/indexing-nested-documents.html#example-indexing-syntax > > This sort works for me to sort products by their sku's price: > > childfield(price_i,{!parent which='id:*prod' v='_nest_path_:/skus/*'}) desc > > When I sorted by a string field (*color_s*) it also worked. However, if I > changed the string field to *color_s_lower* then it didn't work. > I guess the **_s_lower* field has docValues="false". > > Note: The **_s_lowe*r field can be sorted if it is on the parent document > but it cannot when it is in a nested document. > > Do you know how to make the childfield() work with *_s_lower field? > > Thank you > > > > > > > > On Sat, Nov 26, 2022 at 10:38 PM Mikhail Khludnev <m...@apache.org> wrote: > > > Hello, Chatree. > > Please check about `of` param > > > > > https://solr.apache.org/guide/solr/latest/query-guide/block-join-query-parser.html#block-mask > > It's really important note. > > I've made childfield() myself, so I can consult about it, but I don't > know > > is those _nest_path. Unfortunately I'm unaware of them. > > Note, lucene query syntax uses colon to separate field:text, not =. > > That {!parent} query lacks a subordinate children query, ie. it should go > > after closing curly bracket } of before it via ... v='field:val'}. > > Pls keep us posted if you figure out the solution. > > > > On Sat, Nov 26, 2022 at 12:38 PM Chatree Srichart < > > chatree.srich...@gmail.com> wrote: > > > > > Hello all, > > > > > > I have these 2 parent documents and each of them has 2 children with > > > different nest paths (/path1, and /path2) > > > > > > [ > > > { > > > "id": "parent_1", > > > "children": [ > > > { > > > "id": "child_1.1", > > > "field": "value 1.1", > > > "_nest_path_": "/path1#" > > > }, > > > { > > > "id": "child_1.2", > > > "field": "value 1.2", > > > "_nest_path_": "/path2#" > > > } > > > ] > > > }, > > > { > > > "id": "parent_2", > > > "children": [ > > > { > > > "id": "child_2.1", > > > "field": "value 2.1", > > > "_nest_path_": "/path1#" > > > }, > > > { > > > "id": "child_2.2", > > > "field": "value 2.2", > > > "_nest_path_": "/path2#" > > > } > > > ] > > > } > > > ] > > > > > > > > > My question is: > > > > > > How to sort the parent documents by a field of a child document with > > > specific _nest_path? > > > > > > I see this in the Solr document: > > > > > > sort=childfield(field,{!parent of=…}…) desc allows to inline block join > > > parent query > > > > > > > > > *childfield(field) Function* > > > https://solr.apache.org/guide/8_11/function-queries.html > > > > > > However, I don't know what the of=... should be. > > > > > > I have already tried this: > > > > > > childfield(field,{!parent of='_nest_path_=/path1'}) desc > > > > > > but I always get this error: > > > > > > *Can't determine a Sort Order (asc or desc) in sort spec ...* > > > > > > Best regards, > > > Chatree Srichart > > > > > > > > > -- > > Sincerely yours > > Mikhail Khludnev > > > -- Sincerely yours Mikhail Khludnev