org.apache.lucene.search.similarities

## Class PerFieldSimilarityWrapper

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

-     public abstract class PerFieldSimilarityWrapper
      extends Similarity

  Provides the ability to use a different `Similarity` for different fields.

  Subclasses should implement `get(String)` to return an appropriate Similarity (for example, using field-specific parameter values) for the field.

  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.SimScorer`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PerFieldSimilarityWrapper()` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `computeNorm(FieldInvertState state)` Computes the normalization value for a field, given the accumulated state of term processing for this field (see `FieldInvertState`).
    `abstract Similarity` | `get(String name)` Returns a `Similarity` for scoring a field.
    `Similarity.SimScorer` | `scorer(float boost, CollectionStatistics collectionStats, TermStatistics... termStats)` Compute any collection-level weight (e.g.

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

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

- - ### Constructor Detail

    - #### PerFieldSimilarityWrapper

          public PerFieldSimilarityWrapper()

      Sole constructor. (For invocation by subclass constructors, typically implicit.)

  - ### Method Detail

    - #### computeNorm

          public final 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.

      Note that for a given term-document frequency, greater unsigned norms must produce scores that are lower or equal, ie. for two encoded norms `n1` and `n2` so that `Long.compareUnsigned(n1, n2) &gt; 0` then `SimScorer.score(freq, n1) &lt;= SimScorer.score(freq, n2)` for any legal `freq`.

      `0` is not a legal norm, so `1` is the norm that produces the highest scores.

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

    - #### scorer

          public final Similarity.SimScorer scorer(float boost,
                                                   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:
        `scorer` in class `Similarity`
      Parameters:
        `boost` - a multiplicative factor to apply to the produces scores
        `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.

    - #### get

          public abstract Similarity get(String name)

      Returns a `Similarity` for scoring a field.

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