lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Høydahl (JIRA) <>
Subject [jira] [Commented] (SOLR-8812) ExtendedDismaxQParser (edismax) ignores Boolean OR when q.op=AND
Date Fri, 01 Apr 2016 00:18:25 GMT


Jan Høydahl commented on SOLR-8812:

[~gpendleb] looks like you have a good command on the logic and interactions here, so feel
free to throw up a patch...

bq. IF (the query contains a boolean operator) AND (mm has not been explicitly set) THEN (mm
= 0%)
In my experience some users may set mm=100% while others achieved the same with q.op=AND.
Advising users to favor the use of only q.op to get boolean operators working makes the distinction
hard to explain.

I'm positive to applying a fix that focuses on getting the pure AND/OR 0%/100% case fixed
(if that could be achieved with your proposed method), and then worry about other mm's combined
with explicit operators later.

> ExtendedDismaxQParser (edismax) ignores Boolean OR when q.op=AND
> ----------------------------------------------------------------
>                 Key: SOLR-8812
>                 URL:
>             Project: Solr
>          Issue Type: Bug
>          Components: query parsers
>    Affects Versions: 5.5
>            Reporter: Ryan Steinberg
>            Assignee: Erick Erickson
>            Priority: Blocker
>             Fix For: 6.0, 5.5.1
>         Attachments: SOLR-8812.patch
> The edismax parser ignores Boolean OR in queries when q.op=AND. This behavior is new
to Solr 5.5.0 and an unexpected major change.
> Example:
>       "q": "id:12345 OR zzzzzzzzzz",
>       "defType": "edismax",
>       "q.op": "AND",
> where "12345" is a known document ID and "zzzzzzzzzz" is a string NOT present in my data
> Version 5.5.0 produces zero results:
>     "rawquerystring": "id:12345 OR zzzzzzzzzz",
>     "querystring": "id:12345 OR zzzzzzzzzz",
>     "parsedquery": "(+((id:12345 DisjunctionMaxQuery((text:zzzzzzzzzz)))~2))/no_coord",
>     "parsedquery_toString": "+((id:12345 (text:zzzzzzzzzz))~2)",
>     "explain": {},
>     "QParser": "ExtendedDismaxQParser"
> Version 5.4.0 produces one result as expected
>   "rawquerystring": "id:12345 OR zzzzzzzzzz",
>     "querystring": "id:12345 OR zzzzzzzzzz",
>     "parsedquery": "(+(id:12345 DisjunctionMaxQuery((text:zzzzzzzzzz))))/no_coord",
>     "parsedquery_toString": "+(id:12345 (text:zzzzzzzzzz))"
>     "explain": {},
>     "QParser": "ExtendedDismaxQParser"

This message was sent by Atlassian JIRA

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

View raw message