Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
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 & 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 <em>filter</em> that stems words using a Snowball-generated stemmer. Available stemmers & x are listed in org.tartarus.snowball.ext. Note: This <em>filter</em> is aware of the KeywordAttribute.
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: