Hello,
I recently moved from Solr 6.5.1 to Solr 8.6.3, and after we finished upgrading
we now start updating our API, and the first thing we are doing is changing
some of our collections to use nested documents.
At first step, we want to preserve all of the queries to do the same, but with
the new documents structure.
---
While writing down the new version of our queries we have heavy use of Block
Join Parent Query Parser (for now, we don't have a use of the child version),
and I notice 2 problems (which I think are bugs, but they are possibly just me
not understanding how the parser works).
The first problem is:
- The parent QParser let me query only using the df field.
Say my df=id.
Then{!parent which="-_nest_path_:* *:*"}holo parse
into+AllParentsAware(ToParentBlockJoinQuery(+id:holo)).
But {!parent which="-_nest_path_:* *:*"}content_txt:holo parse
into+AllParentsAware(ToParentBlockJoinQuery(+id:content_txt:holo)).
Am I searching it wrong? Or is there a bug?
The second problem is a bit more serious:
- I am using edismax parser (with uf=* _query_ and sow=true), and we use a lot
of field aliases. Including our df parameters. The parent QParser doesn't work
correctly when my df is a field alias.
For example for f.alias.qf=id we get that {!parent which="-_nest_path_:*
*:*"}holo is parsed into: `+(DisjunctionMaxQuery(((id:{parent)))
DisjunctionMaxQuery(((id:which="-_nest_path_:*)))
DisjunctionMaxQuery(((id:*:*\}holo)))`
It looks like edismax is getting an error, so it takes {!parent
which="-_nest_path_:* *:*"}holo as the query itself!
I would love to get an advice on what to do (if it is indeed a bug, I am
willing to go into the code and try to fix it, but I am hoping to solve it
without patching our Solr)
Sent with [ProtonMail](https://protonmail.com/) Secure Email.