org.apache.lucene.search.similarities

## Class MultiSimilarity

- java.lang.Object
- - org.apache.lucene.search.similarities.Similarity
  - - org.apache.lucene.search.similarities.MultiSimilarity

    public class MultiSimilarity
    extends Similarity

Implements the CombSUM method for combining evidence from multiple similarity values described in: Joseph A. Shaw, Edward A. Fox. In Text REtrieval Conference (1993), pp. 243-252

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.search.similarities.Similarity

`Similarity.ExactSimScorer, Similarity.SimWeight, Similarity.SloppySimScorer`

### Field Summary

Fields
`protected Similarity[]` `sims` the sub-similarities used to create the combined score

### Constructor Summary

Constructors
Constructor and Description
`MultiSimilarity(Similarity[] sims)` Creates a MultiSimilarity which will sum the scores of the provided `sims`.

### Method Summary

Methods
`long` `computeNorm(FieldInvertState state)` Computes the normalization value for a field, given the accumulated state of term processing for this field (see `FieldInvertState`).
`Similarity.SimWeight` `computeWeight(float queryBoost, CollectionStatistics collectionStats, TermStatistics... termStats)` Compute any collection-level weight (e.g.
`Similarity.ExactSimScorer` `exactSimScorer(Similarity.SimWeight stats, AtomicReaderContext context)` Creates a new `Similarity.ExactSimScorer` to score matching documents from a segment of the inverted index.
`Similarity.SloppySimScorer` `sloppySimScorer(Similarity.SimWeight stats, AtomicReaderContext context)` Creates a new `Similarity.SloppySimScorer` to score matching documents from a segment of the inverted index.

### Methods inherited from class org.apache.lucene.search.similarities.Similarity

`coord, queryNorm`

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

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

### Field Detail

#### sims

    protected final Similarity[] sims

the sub-similarities used to create the combined score

### Constructor Detail

#### MultiSimilarity

    public MultiSimilarity(Similarity[] sims)

Creates a MultiSimilarity which will sum the scores of the provided `sims`.

### Method Detail

#### computeNorm

    public long computeNorm(FieldInvertState state)

Description copied from class: `Similarity`
Computes the normalization value for a field, given the accumulated state of term processing for this field (see `FieldInvertState`).

Matches in longer fields are less precise, so implementations of this method usually set smaller values when `state.getLength()` is large, and larger values when `state.getLength()` is small.

Specified by:
  `computeNorm` in class `Similarity`
Parameters:
  `state` - current processing state for this field
Returns:
  computed norm value

#### computeWeight

    public Similarity.SimWeight computeWeight(float queryBoost,
                                     CollectionStatistics collectionStats,
                                     TermStatistics... termStats)

Description copied from class: `Similarity`
Compute any collection-level weight (e.g. IDF, average document length, etc) needed for scoring a query.

Specified by:
  `computeWeight` in class `Similarity`
Parameters:
  `queryBoost` - the query-time boost.
  `collectionStats` - collection-level statistics, such as the number of tokens in the collection.
  `termStats` - term-level statistics, such as the document frequency of a term across the collection.
Returns:
  SimWeight object with the information this Similarity needs to score a query.

#### exactSimScorer

    public Similarity.ExactSimScorer exactSimScorer(Similarity.SimWeight stats,
                                           AtomicReaderContext context)
                                             throws IOException

Description copied from class: `Similarity`
Creates a new `Similarity.ExactSimScorer` to score matching documents from a segment of the inverted index.

Specified by:
  `exactSimScorer` in class `Similarity`
Parameters:
  `stats` - collection information from `Similarity.computeWeight(float, CollectionStatistics, TermStatistics...)`
  `context` - segment of the inverted index to be scored.
Returns:
  ExactSimScorer for scoring documents across `context`
Throws:
  `IOException` - if there is a low-level I/O error

#### sloppySimScorer

    public Similarity.SloppySimScorer sloppySimScorer(Similarity.SimWeight stats,
                                             AtomicReaderContext context)
                                               throws IOException

Description copied from class: `Similarity`
Creates a new `Similarity.SloppySimScorer` to score matching documents from a segment of the inverted index.

Specified by:
  `sloppySimScorer` in class `Similarity`
Parameters:
  `stats` - collection information from `Similarity.computeWeight(float, CollectionStatistics, TermStatistics...)`
  `context` - segment of the inverted index to be scored.
Returns:
  SloppySimScorer for scoring documents across `context`
Throws:
  `IOException` - if there is a low-level I/O error