Interface TermWeightor

All Superinterfaces:
ToDoubleFunction<Term>

public interface TermWeightor extends ToDoubleFunction<Term>
Calculates the weight of a Term
  • 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