Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-9091

UnifiedHighlighter HTML escaping should only escape essentials

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 8.5
    • Component/s: modules/highlighter
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      The unified highlighter does not use the org.apache.lucene.search.highlight.SimpleHTMLEncoder through org.apache.solr.highlight.HtmlEncoder. It has the HTML escaping feature re-implemented and embedded in the org.apache.lucene.search.uhighlight.DefaultPassageFormatter.

      The HTML escaping done by the unified highlighter escapes characters that do not need it. This makes the result payload 50%+ more heavy with no benefit.

      Here is a highlight snippet using the original highlighter:

      A <em>filter</em> that stems words using a Snowball-generated stemmer. Available stemmers &amp; x are listed in org.tartarus.snowball.ext. Note: This <em>filter</em> is aware of the KeywordAttribute.
      

      Here is the same highlight snippet using the unified highlighter:

      A&#32;<em>filter</em>&#32;that&#32;stems&#32;words&#32;using&#32;a&#32;Snowball&#45;generated&#32;stemmer&#46;&#32;Available&#32;stemmers&#32;&amp;&#32;x&#32;are&#32;listed&#32;in&#32;org&#46;tartarus&#46;snowball&#46;ext&#46;&#32;Note&#58;&#32;This&#32;<em>filter</em>&#32;is&#32;aware&#32;of&#32;the&#32;KeywordAttribute&#46;
      

      Maybe I'm missing the point why this is done the way it is. If this behaviour is desired for some use-case it should be a separate encoder, and the HTML encoder should only escape the necessary characters.

      Affects all versions of Lucene-Solr since the addition of the UnifiedHighlighter. Here are the lines where the escaping are implemented differently:

       

        Attachments

        1. LUCENE-9091.patch
          9 kB
          Nándor Mátravölgyi

          Activity

            People

            • Assignee:
              dsmiley David Smiley
              Reporter:
              myusername8 Nándor Mátravölgyi
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: