Show / Hide Table of Contents

    Class CustomScoreProvider

    An instance of this subclass should be returned by GetCustomScoreProvider(AtomicReaderContext), if you want to modify the custom score calculation of a CustomScoreQuery.

    Since Lucene 2.9, queries operate on each segment of an index separately, so the protected m_context field can be used to resolve doc IDs, as the supplied doc ID is per-segment and without knowledge of the IndexReader you cannot access the document or IFieldCache.

    This is a Lucene.NET EXPERIMENTAL API, use at your own risk

    @since 2.9.2

    Inheritance
    System.Object
    CustomScoreProvider
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: Lucene.Net.Queries
    Assembly: Lucene.Net.Queries.dll
    Syntax
    public class CustomScoreProvider

    Constructors

    | Improve this Doc View Source

    CustomScoreProvider(AtomicReaderContext)

    Creates a new instance of the provider class for the given IndexReader.

    Declaration
    public CustomScoreProvider(AtomicReaderContext context)
    Parameters
    Type Name Description
    AtomicReaderContext context

    Fields

    | Improve this Doc View Source

    m_context

    Declaration
    protected readonly AtomicReaderContext m_context
    Field Value
    Type Description
    AtomicReaderContext

    Methods

    | Improve this Doc View Source

    CustomExplain(Int32, Explanation, Explanation)

    Explain the custom score. Whenever overriding CustomScore(Int32, Single, Single), this method should also be overridden to provide the correct explanation for the part of the custom scoring.

    Declaration
    public virtual Explanation CustomExplain(int doc, Explanation subQueryExpl, Explanation valSrcExpl)
    Parameters
    Type Name Description
    System.Int32 doc

    doc being explained.

    Explanation subQueryExpl

    explanation for the sub-query part.

    Explanation valSrcExpl

    explanation for the value source part.

    Returns
    Type Description
    Explanation

    an explanation for the custom score

    | Improve this Doc View Source

    CustomExplain(Int32, Explanation, Explanation[])

    Explain the custom score. Whenever overriding CustomScore(Int32, Single, Single[]), this method should also be overridden to provide the correct explanation for the part of the custom scoring.

    Declaration
    public virtual Explanation CustomExplain(int doc, Explanation subQueryExpl, Explanation[] valSrcExpls)
    Parameters
    Type Name Description
    System.Int32 doc

    doc being explained.

    Explanation subQueryExpl

    explanation for the sub-query part.

    Explanation[] valSrcExpls

    explanation for the value source part.

    Returns
    Type Description
    Explanation

    an explanation for the custom score

    | Improve this Doc View Source

    CustomScore(Int32, Single, Single)

    Compute a custom score by the subQueryScore and the FunctionQuery score.

    Subclasses can override this method to modify the custom score.

    If your custom scoring is different than the default herein you should override at least one of the two CustomScore(Int32, Single, Single) methods. If the number of FunctionQuerys is always < 2 it is sufficient to override this CustomScore(Int32, Single, Single) method, which is simpler.

    The default computation herein is a multiplication of the two scores:

        ModifiedScore = subQueryScore * valSrcScore
    Declaration
    public virtual float CustomScore(int doc, float subQueryScore, float valSrcScore)
    Parameters
    Type Name Description
    System.Int32 doc

    id of scored doc.

    System.Single subQueryScore

    score of that doc by the subQuery.

    System.Single valSrcScore

    score of that doc by the FunctionQuery.

    Returns
    Type Description
    System.Single

    custom score.

    | Improve this Doc View Source

    CustomScore(Int32, Single, Single[])

    Compute a custom score by the subQuery score and a number of FunctionQuery scores.

    Subclasses can override this method to modify the custom score.

    If your custom scoring is different than the default herein you should override at least one of the two CustomScore(Int32, Single, Single) methods. If the number of FunctionQuerys is always < 2 it is sufficient to override the other CustomScore(Int32, Single, Single) method, which is simpler.

    The default computation herein is a multiplication of given scores:

        ModifiedScore = valSrcScore * valSrcScores[0] * valSrcScores[1] * ...
    Declaration
    public virtual float CustomScore(int doc, float subQueryScore, float[] valSrcScores)
    Parameters
    Type Name Description
    System.Int32 doc

    id of scored doc.

    System.Single subQueryScore

    score of that doc by the subQuery.

    System.Single[] valSrcScores

    scores of that doc by the FunctionQuery.

    Returns
    Type Description
    System.Single

    custom score.

    • Improve this Doc
    • View Source
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)