-
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
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: