Class GradientFormatter

java.lang.Object
org.apache.lucene.search.highlight.GradientFormatter
All Implemented Interfaces:
Formatter
Direct Known Subclasses:
SpanGradientFormatter

public class GradientFormatter extends Object implements Formatter
Formats text with different color intensity depending on the score of the term.
  • Field Details

    • highlightForeground

      protected boolean highlightForeground
    • highlightBackground

      protected boolean highlightBackground
  • Constructor Details

    • GradientFormatter

      public GradientFormatter(float maxScore, String minForegroundColor, String maxForegroundColor, String minBackgroundColor, String maxBackgroundColor)
      Sets the color range for the IDF scores
      Parameters:
      maxScore - The score (and above) displayed as maxColor (See QueryScorer.getMaxTermWeight() which can be used to calibrate scoring scale)
      minForegroundColor - The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no foreground color required
      maxForegroundColor - The largest hex color used for representing IDF scores eg #000000 (black) or null if no foreground color required
      minBackgroundColor - The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no background color required
      maxBackgroundColor - The largest hex color used for representing IDF scores eg #000000 (black) or null if no background color required
  • Method Details

    • highlightTerm

      public String highlightTerm(String originalText, TokenGroup tokenGroup)
      Specified by:
      highlightTerm in interface Formatter
      Parameters:
      originalText - The section of text being considered for markup
      tokenGroup - contains one or several overlapping Tokens along with their scores and positions.
    • getForegroundColorString

      protected String getForegroundColorString(float score)
    • getBackgroundColorString

      protected String getBackgroundColorString(float score)
    • hexToInt

      public static final int hexToInt(String hex)
      Converts a hex string into an int. Integer.parseInt(hex, 16) assumes the input is nonnegative unless there is a preceding minus sign. This method reads the input as twos complement instead, so if the input is 8 bytes long, it will correctly restore a negative int produced by Integer.toHexString() but not necessarily one produced by Integer.toString(x,16) since that method will produce a string like '-FF' for negative integer values.
      Parameters:
      hex - A string in capital or lower case hex, of no more then 16 characters.
      Throws:
      NumberFormatException - if the string is more than 16 characters long, or if any character is not in the set [0-9a-fA-f]