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

Jack Krupansky commented on SOLR-2649:
--------------------------------------

The behavior of mm only applying to the top-level query is not documented at 
present.

Even if having mm apply only to the top-level query is intended, it seems a 
separate matter as to how the q.op parameter applies. I've never seen any doc 
or discussion that suggested that the default operator should only apply to the 
top-level query. I haven't looked at the code lately, but it used to be that 
q.op was just used to set the internal mm value and then completely ignored in 
the sense that it was not passed down to the Lucene query parser to use as the 
Lucene default operator. IOW, the Lucene setDefaultOperator method was never 
called.

See:
https://lucene.apache.org/core/5_3_0/queryparser/org/apache/lucene/queryparser/classic/QueryParserBase.html#setDefaultOperator(org.apache.lucene.queryparser.classic.QueryParser.Operator)


> MM ignored in edismax queries with operators
> --------------------------------------------
>
>                 Key: SOLR-2649
>                 URL: https://issues.apache.org/jira/browse/SOLR-2649
>             Project: Solr
>          Issue Type: Improvement
>          Components: query parsers
>            Reporter: Magnus Bergmark
>            Assignee: Erick Erickson
>             Fix For: 4.9, Trunk
>
>         Attachments: SOLR-2649-with-Qop.patch, SOLR-2649-with-Qop.patch, 
> SOLR-2649.diff, SOLR-2649.patch
>
>
> Hypothetical scenario:
>   1. User searches for "stocks oil gold" with MM set to "50%"
>   2. User adds "-stockings" to the query: "stocks oil gold -stockings"
>   3. User gets no hits since MM was ignored and all terms where AND-ed 
> together
> The behavior seems to be intentional, although the reason why is never 
> explained:
>   // For correct lucene queries, turn off mm processing if there
>   // were explicit operators (except for AND).
>   boolean doMinMatched = (numOR + numNOT + numPluses + numMinuses) == 0; 
> (lines 232-234 taken from 
> tags/lucene_solr_3_3/solr/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java)
> This makes edismax unsuitable as an replacement to dismax; mm is one of the 
> primary features of dismax.



--
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