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

Highlighting does not work for embedded boost query that boosts a dismax query

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4.1, 3.2, 3.3
    • Fix Version/s: None
    • Component/s: highlighter
    • Environment:

      Linux.
      Reproduced in different machines with different Linux distributions and different JDK's.
      Solr 3.3 and Lucidworks for solr 1.4.1 and 3.2.

      Description

      I need to issue a dismax query, with date boost (I'd like to use the multiplicative boost provided by boost queries) and also filtering for other fields with too many possible distinct values to fit in a filter query. To achieve this, I use the boost query as a nested query using the pseudofield query. I also need highlighting for the fields used in the dismax query, but highlighting does not work. If I just use the boosted dismax query without embedding it inside another query, it works correctly. If I use bf instead of a boost query, and embed directly the dismax query, it works too, but hl.fl needs to be specified.

      It's a bit complicated to explain, so, I'll give examples using the example data that comes with solr (the problem is reproducible in the example solr distribution, not only in my concrete project).

      http://localhost:8983/solr/select?q=%2binStock:true%20%2b_query_:%22

      {!boost%20b=$dateboost%20v=$qq%20defType=dismax}%22&qq=test&qf=name&dateboost=recip%28ms%28NOW,last_modified%29,3.16e-11,1,1%29&hl=true&hl.fl=name
      For this query, highlighting does not work. Specifying hl.fl or not, does not influence the result. The result is:
      <lst name="highlighting">
      <lst name="GB18030TEST"/>
      <lst name="UTF8TEST"/>
      </lst>

      http://localhost:8983/solr/select?q=_query_:%22{!boost%20b=$dateboost%20v=$qq%20defType=dismax}

      %22&qq=test&qf=name&dateboost=recip%28ms%28NOW,last_modified%29,3.16e-11,1,1%29&hl=true&hl.fl=name

      This doesn't work either. Same result.

      http://localhost:8983/solr/select?q=

      {!boost b=$dateboost v=$qq defType=dismax}

      &qq=test&qf=name&dateboost=recip(ms(NOW,last_modified),3.16e-11,1,1)&hl=true

      In this case, hightlighting works correctly:

      <lst name="highlighting">
      <lst name="GB18030TEST">
      <arr name="name">
      <str><em>Test</em> with some GB18030 encoded characters</str>
      </arr>
      </lst>
      <lst name="UTF8TEST">
      <arr name="name">
      <str><em>Test</em> with some UTF-8 encoded characters</str>
      </arr>
      </lst>
      </lst>

      http://localhost:8983/solr/select?q=%2BinStock:true%20%2B_query_:%22

      {!dismax%20v=$qq}

      %22&qq=test&qf=name&bf=recip%28ms%28NOW,last_modified%29,3.16e-11,1,1%29&hl=true&hl.fl=name

      This also works. Same result as before. But in this case hl.fl is needed. Without it, highlighting does not work, either.

      Thanks.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                juan.farre Juan Antonio Farré Basurte
              • Votes:
                1 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: