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