TermWeightor (Lucene 10.5.0 monitor API)
Description: declaration: package: org.apache.lucene.monitor, interface: TermWeightor

Package org.apache.lucene.monitor

# Interface TermWeightor

All Superinterfaces:
  `ToDoubleFunction<Term>`

public interface TermWeightor extends ToDoubleFunction<Term>
Calculates the weight of a `Term`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final TermWeightor`
  `DEFAULT`
  A default TermWeightor based on token length

- ## Method Summary

  Static Methods
  Modifier and Type
  Method
  Description
  `static TermWeightor`
  `combine(TermWeightor... weightors)`
  Combine weightors by multiplication
  `static TermWeightor`
  `fieldWeightor(double weight, String... fields)`
  QueryTerms with a field from the selected set will be assigned the given weight
  `static TermWeightor`
  `fieldWeightor(double weight, Set<String> fields)`
  QueryTerms with a field from the selected set will be assigned the given weight
  `static TermWeightor`
  `lengthWeightor(double a, double k)`
  QueryTerms will be assigned a weight based on their term length
  `static TermWeightor`
  `termAndFieldWeightor(double weight, Set<Term> terms)`
  QueryTerms with a term and field value from the selected set will be assigned the given weight
  `static TermWeightor`
  `termAndFieldWeightor(double weight, Term... terms)`
  QueryTerms with a term and field value from the selected set will be assigned the given weight
  `static TermWeightor`
  `termFreqWeightor(Map<String,Integer> frequencies, double n, double k)`
  QueryTerms will be assigned a weight based on their term frequency
  `static TermWeightor`
  `termWeightor(double weight, Set<BytesRef> terms)`
  QueryTerms with a term value from the selected set will be assigned the given weight
  `static TermWeightor`
  `termWeightor(double weight, BytesRef... terms)`
  QueryTerms with a term value from the selected set will be assigned the given weight

  ### Methods inherited from interface java.util.function.ToDoubleFunction

  `applyAsDouble`

- ## Field Details

  - ### DEFAULT

    static final TermWeightor DEFAULT
    A default TermWeightor based on token length

- ## Method Details

  - ### combine

    static TermWeightor combine(TermWeightor... weightors)
    Combine weightors by multiplication

  - ### fieldWeightor

    static TermWeightor fieldWeightor(double weight, Set<String> fields)
    QueryTerms with a field from the selected set will be assigned the given weight

  - ### fieldWeightor

    static TermWeightor fieldWeightor(double weight, String... fields)
    QueryTerms with a field from the selected set will be assigned the given weight

  - ### termWeightor

    static TermWeightor termWeightor(double weight, Set<BytesRef> terms)
    QueryTerms with a term value from the selected set will be assigned the given weight

  - ### termWeightor

    static TermWeightor termWeightor(double weight, BytesRef... terms)
    QueryTerms with a term value from the selected set will be assigned the given weight

  - ### termAndFieldWeightor

    static TermWeightor termAndFieldWeightor(double weight, Set<Term> terms)
    QueryTerms with a term and field value from the selected set will be assigned the given weight

  - ### termAndFieldWeightor

    static TermWeightor termAndFieldWeightor(double weight, Term... terms)
    QueryTerms with a term and field value from the selected set will be assigned the given weight

  - ### termFreqWeightor

    static TermWeightor termFreqWeightor(Map<String,Integer> frequencies, double n, double k)
    QueryTerms will be assigned a weight based on their term frequency

    More infrequent terms are weighted higher. Terms are weighted according to the function `w = (n / freq) + k`. Terms with no associated frequency receive a weight of value `1`

    Parameters:
      `frequencies` - a map of terms to frequencies
      `n` - a scaling factor
      `k` - the minimum weight to scale to

  - ### lengthWeightor

    static TermWeightor lengthWeightor(double a, double k)
    QueryTerms will be assigned a weight based on their term length

    Weights are assigned by the function `a * e ^ (-k * length)`. Longer terms are weighted higher. Terms of length greater than 32 all receive the same weight.

    Parameters:
      `a` - a
      `k` - k