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

Takumi Yoshida commented on SOLR-9677:
--------------------------------------

I read some codes.

If the edismax parser failed to parse the user query because of 
RuntimeException (detail message = UnknowField) 
ExtendedDismaxQParser.parseOriginalQuery method returns null. after that, 
operators which are contained in user query are escaped as Keyword and parsed. 

https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java#L185-L189

so i think , as David mentioned, insted of changing parsing logic, we shuld 
show exception in log file.

> edismax treat operator as a keyword when a query parameter 'qf' contains 
> inexist field.
> ---------------------------------------------------------------------------------------
>
>                 Key: SOLR-9677
>                 URL: https://issues.apache.org/jira/browse/SOLR-9677
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 5.2.1, 5.5.1, 6.2.1, trunk
>            Reporter: Takumi Yoshida
>
> edismax treat operator as a keyword when a query parameter 'qf' contains 
> inexist field.
> ex. ('hoge' does not existing in the schema.)
> q=Japan OR Tokyo
> defType=edismax
> qf=title hoge
> you will get result containing keywords 'Japan' or 'OR' or 'Tokyo' in Title.
> also, you can get the following parsed query with debugQuery=true.
> {code}
> <str name="parsedquery_toString">+((title:Japan) (title:OR) 
> (title:Tokyo))</str>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to