GradientFormatter (Lucene 10.5.0 highlighter API)
Description: declaration: package: org.apache.lucene.search.highlight, class: GradientFormatter

Package org.apache.lucene.search.highlight

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `highlightBackground`
  `protected boolean`
  `highlightForeground`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GradientFormatter(float maxScore, String minForegroundColor, String maxForegroundColor, String minBackgroundColor, String maxBackgroundColor)`
  Sets the color range for the IDF scores

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `getBackgroundColorString(float score)`
  `protected String`
  `getForegroundColorString(float score)`
  `static final int`
  `hexToInt(String hex)`
  Converts a hex string into an int.
  `String`
  `highlightTerm(String originalText, TokenGroup tokenGroup)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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]