>  should I report the observed behaviour as a bug?
I don't think it will go anywhere productive.

On Fri, May 5, 2023 at 1:11 PM Igor Blanco <ibla...@binovo.es.invalid>
wrote:

> Adding extra parameters is quite inconvinient for me because I'm
> building a system that builds the queries based on differente inputs
> from the user (a filter panel with a wide variety of conditions).
>
> But following your advice I just inlined the subqueries in the "v"
> parameter after escaping the single quotes and it seems to work as
> expected.
>
> So once more you are my savior, thanks a lot.
>
> Although this works, should I report the observed behaviour as a bug?
>
> El 5/5/23 a las 11:33, Mikhail Khludnev escribió:
> > Hello.
> > This syntax is rather tricky. What's working most times is to extracting
> > subqueries into separate parameters:
> > q=+{!parent which="*:* -_nest_path_:*" v=$sub0} +{!parent which="*:*
> > -_nest_path_:*" v=$sub1}&sub0=context:(+hol? +h?la)&sub1=context:(adios)
> >
> > On Fri, May 5, 2023 at 12:05 PM Igor Blanco<ibla...@binovo.es.invalid>
> > wrote:
> >
> >> I'm using SOLR 9.2.1
> >>
> >> I have a parent document with a couple of subdocuments, something like
> >> this:
> >>
> >>      {
> >>
> >>      id: "1",
> >>
> >>      contexts: [
> >>
> >>           {
> >>
> >>              id: "CTX1",
> >>
> >>              context: "hola"
> >>
> >>          },{
> >>
> >>              id: "CTX2",
> >>
> >>              context: "adios"
> >>
> >>         }
> >>
> >>      ]
> >>
> >>      }
> >>
> >> When I try to execute this query:
> >>
> >>      ({!parent which="*:* -_nest_path_:*"}(context:(hol? AND h?la)) AND
> >>      {!parent which="*:* -_nest_path_:*"}(context:(adios)))
> >>
> >> I expected to receive document with id 1 as a response, but instead i
> >> receive this syntax error:
> >>
> >> org.apache.solr.search.SyntaxError: Cannot parse '(context:(hol?':
> >> Encountered \"<EOF>\" at line 1, column 14.\nWas expecting one of:\n
> >> <AND> ...\n    <OR> ...\n    <NOT> ...\n    \"+\" ...\n    \"-\" ...\n
> >> <BAREOPER> ...\n    \"(\" ...\n    \")\" ...\n    \"*\" ...\n    \"^\"
> >> ...\n    <QUOTED> ...\n    <TERM> ...\n    <FUZZY_SLOP> ...\n
> >> <PREFIXTERM> ...\n <WILDTERM> ...\n    <REGEXPTERM> ...\n    \"[\"
> >> ...\n    \"{\" ...\n    <LPARAMS> ...\n    \"filter(\" ...\n    <NUMBER>
> >> ...\n
> >>
> >>
> >> It explicitly says that found and <EOF> but that's not true, it is
> >> followed by and AND which is one of the expected values.
> >>
> >> As further information, I've been able to narrow the query to the point
> >> where this clause works but gives an empty result:
> >>
> >> {!parent which="*:* -_nest_path_:*"}context:(hola) AND id:1
> >>
> >> But this one throws the mentioned syntax error:
> >>
> >> id:1 AND {!parent which="*:* -_nest_path_:*"}context:(hola)
> >>
> >> After reading the documentation more thoroughly I think I found the
> >> explanation of why the first query is returning an empty result here:
> >> https://solr.apache.org/guide/8_0/the-standard-query-parser.html
> >>
> >> It says:
> >>
> >>      /Gotcha: Be careful not to start your query with {! at the very
> >>      beginning, which changes the parsing of the entire query string,
> >>      which may not be what you want if there are additional clauses./
> >>
> >> So the first query is using the block join query parser for everything
> >> and effectively the second clause after the AND is searching for id with
> >> value 1 in the children not the parent so the condition is never met and
> >> nothing is returned.
> >>
> >> The second one instead is using the standard parser for the first clause
> >> and the block join query parser for the second. In fact removing the
> >>
> >> Is this a bug or am I misinterpreting how different query parsers can be
> >> combined in a query?
> >>
> >> --
> >>
> >>
> >>        IgorBlanco
> >>
> >> Director desarrollo a medida | Neurrirako garapenen zuzendaria
> >>
> >> Binovo IT Human Project
> >>
> >>
> >>
> >>
> >>          943 569 206<tel:943 569 206>  | 690229375<tel:690229375>
> >>
> >>          ibla...@binovo.es  <mailto:ibla...@binovo.es>
> >>
> >>          binovo.es <//binovo.es>
> >>
> >>          Astigarragako Bidea, 2 - 2º izda. Oficina 10-11, 20180 Oiartzun
> >>
> >>
> >>
> >>
> >>
> >> youtube<https://www.youtube.com/user/CANALBINOVO/>
> >>          linkedin<
> https://www.linkedin.com/company/binovo-it-human-project/>
> >>
> >
> --
>
>
>       IgorBlanco
>
> Director desarrollo a medida | Neurrirako garapenen zuzendaria
>
> Binovo IT Human Project
>
>
>
>
>         943 569 206 <tel:943 569 206> | 690229375 <tel:690229375>
>
>         ibla...@binovo.es <mailto:ibla...@binovo.es>
>
>         binovo.es <//binovo.es>
>
>         Astigarragako Bidea, 2 - 2º izda. Oficina 10-11, 20180 Oiartzun
>
>
>
>
>
> youtube <https://www.youtube.com/user/CANALBINOVO/>
>         linkedin <
> https://www.linkedin.com/company/binovo-it-human-project/>
>


-- 
Sincerely yours
Mikhail Khludnev
https://t.me/MUST_SEARCH
A caveat: Cyrillic!

Reply via email to