Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-8812

ExtendedDismaxQParser (edismax) ignores Boolean OR when q.op=AND and mm is not explicitly set

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.5
    • 5.5.2, 5.6, 6.0.2, 6.1, 7.0
    • query parsers
    • None

    Description

      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"

      Attachments

        1. SOLR-8812.patch
          1.0 kB
          Jan Høydahl
        2. SOLR-8812.patch
          5 kB
          Greg Pendlebury
        3. SOLR-8812-barbie.patch
          3 kB
          Greg Pendlebury
        4. SOLR-8812.patch
          10 kB
          Steven Rowe

        Issue Links

          Activity

            People

              sarowe Steven Rowe
              ryanmax Ryan Steinberg
              Votes:
              8 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: