lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Pendlebury (JIRA)" <>
Subject [jira] [Commented] (SOLR-2649) MM ignored in edismax queries with operators
Date Sun, 15 Feb 2015 22:50:12 GMT


Greg Pendlebury commented on SOLR-2649:

Thanks Erick,

I can recreate the SOLR-2649-with-Qop.patch this week (today looks pretty busy sorry). Just
updating trunk now. Jan's SOLR-2649 patch is technically correct from everything I have looked
at, but it actually makes the eDismax parser very confusing for novice end users. Our investigation
seemed to indicate that the problems stem from the steps taken by Lucene/Solr to convert boolean
OR operators to the SHOULD occur flags (but running off memory here). This is made very obvious
by the fact that eDismax is hard coded to use OR as the default operator. We were simply tea
leaf gazing, but our assumption is that this confusion may have been the original cause for
disabling 'mm' when operators were present.

So the patch we submitted simply does the same as Jan's, but also makes eDismax read the default
operator from the 'q.op' parameter. With access to both parameters we have always been able
to respond meaningfully to the queries our users are submitting.

> MM ignored in edismax queries with operators
> --------------------------------------------
>                 Key: SOLR-2649
>                 URL:
>             Project: Solr
>          Issue Type: Bug
>          Components: query parsers
>            Reporter: Magnus Bergmark
>            Assignee: Erick Erickson
>            Priority: Minor
>             Fix For: 4.9, Trunk
>         Attachments: 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/
> 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message