[ 
https://issues.apache.org/jira/browse/SOLR-14557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17169645#comment-17169645
 ] 

Mikhail Khludnev commented on SOLR-14557:
-----------------------------------------

Ok. There are two places where local params are parsed:
# QParser.parseLocalParams() when string starts with curly brace { 
# JavaCC QueryParser.jj SOLR-4093 
SOLR-11501 banned edismax from the former option. But the former option is 
unable to handle {{\{!parser}(foo)}} that might seem like a bug, but after 
thinking a little I've though it's reasonable. Think about {{(\{!term}foo)}}, 
it should be parsed to {{foo}} undoubtedly, but {{\{!term}(foo)}} behavior 
quite depended on subordinate parser, TermQParser should receive parenthesis, 
but LuceneQParser probably shouldn't.
So, I resolved it just by advising customer for tweaking syntax: 
Before 7.2 {{\{!join ...}(... )}} -> after 7.2 {{\_query_:"\{!join ... 
defType=edixmax}....."}}   
Sorry for the noise.

> Unable to parse local params followed by parenthesis like {!lucene}(gigabyte)
> -----------------------------------------------------------------------------
>
>                 Key: SOLR-14557
>                 URL: https://issues.apache.org/jira/browse/SOLR-14557
>             Project: Solr
>          Issue Type: Bug
>          Components: query parsers
>            Reporter: Mikhail Khludnev
>            Priority: Major
>              Labels: painful
>         Attachments: SOLR-14557.patch, SOLR-14557.patch, SOLR-14557.patch
>
>
> h2. Solr 4.5
> {{/select?defType=edismax&q=\{!lucene}(foo)&debugQuery=true}} 
>  
>  goes like
>  {code}
>  <str name="rawquerystring">\{!lucene}(foo)</str>
>  <str name="parsedquery_toString">content:foo</str>
>  <str name="QParser">LuceneQParser</str>
> {code}
> fine
> h2. Solr 8.2 
> with luceneMatchVersion=4.5 following SOLR-11501 I know it's a grey zone but 
> it's a question of migrating existing queries. 
> {{/select?defType=edismax&q=\{!lucene}(foo)&debugQuery=true}} 
> goes like 
> {code}
> "querystring":"\{!lucene}(foo)",
>  "parsedquery":"+DisjunctionMaxQuery(((Project.Address:lucene 
> Project.Address:foo) | (Project.OwnerType:lucene Project.OwnerType:foo) 
>  "QParser":"ExtendedDismaxQParser",
> {code}
> blah... 
> but removing braces in 8.2 works perfectly fine 
> {code}
> "querystring":"\{!lucene}foo",
>  "parsedquery":"+content:foo",
>  "parsedquery_toString":"+content:foo",
>  "QParser":"ExtendedDismaxQParser",
>  {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to