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 and Description
    --- | ---
    `protected boolean` | `highlightBackground`
    `protected boolean` | `highlightForeground`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `getBackgroundColorString(float score)`
    `protected String` | `getForegroundColorString(float score)`
    `static 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 Detail

    - #### highlightForeground

          protected boolean highlightForeground

    - #### highlightBackground

          protected boolean highlightBackground

  - ### Constructor Detail

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

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

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.