Class MeanReciprocalRank

  • All Implemented Interfaces:
    org.elasticsearch.common.io.stream.NamedWriteable, org.elasticsearch.common.io.stream.Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject, EvaluationMetric

    public class MeanReciprocalRank
    extends java.lang.Object
    implements EvaluationMetric
    Metric implementing Mean Reciprocal Rank (https://en.wikipedia.org/wiki/Mean_reciprocal_rank).
    By default documents with a rating equal or bigger than 1 are considered to be "relevant" for the reciprocal rank calculation. This value can be changes using the relevant_rating_threshold` parameter.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  MeanReciprocalRank.Detail  
      • Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent

        org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params
      • Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable

        org.elasticsearch.common.io.stream.Writeable.Reader<V extends java.lang.Object>, org.elasticsearch.common.io.stream.Writeable.Writer<V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String NAME  
      • Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent

        EMPTY_PARAMS
    • Constructor Summary

      Constructors 
      Constructor Description
      MeanReciprocalRank()  
      MeanReciprocalRank​(int relevantRatingThreshold, int k)
      Metric implementing Mean Reciprocal Rank (https://en.wikipedia.org/wiki/Mean_reciprocal_rank).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      EvalQueryQuality evaluate​(java.lang.String taskId, org.elasticsearch.search.SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)
      Compute ReciprocalRank based on provided relevant document IDs.
      java.util.Optional<java.lang.Integer> forcedSearchSize()
      Metrics can define a size of the search hits windows they want to retrieve by overwriting this method.
      static MeanReciprocalRank fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser)  
      int getRelevantRatingThreshold()
      Return the rating threshold above which ratings are considered to be "relevant".
      java.lang.String getWriteableName()  
      int hashCode()  
      org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)  
      void writeTo​(org.elasticsearch.common.io.stream.StreamOutput out)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject

        isFragment
    • Constructor Detail

      • MeanReciprocalRank

        public MeanReciprocalRank()
      • MeanReciprocalRank

        public MeanReciprocalRank​(int relevantRatingThreshold,
                                  int k)
        Metric implementing Mean Reciprocal Rank (https://en.wikipedia.org/wiki/Mean_reciprocal_rank).
        Parameters:
        relevantRatingThreshold - the rating value that a document needs to be regarded as "relevant". Defaults to 1.
        k - the search window size all request use.
    • Method Detail

      • writeTo

        public void writeTo​(org.elasticsearch.common.io.stream.StreamOutput out)
                     throws java.io.IOException
        Specified by:
        writeTo in interface org.elasticsearch.common.io.stream.Writeable
        Throws:
        java.io.IOException
      • forcedSearchSize

        public java.util.Optional<java.lang.Integer> forcedSearchSize()
        Description copied from interface: EvaluationMetric
        Metrics can define a size of the search hits windows they want to retrieve by overwriting this method. The default implementation returns an empty optional.
        Specified by:
        forcedSearchSize in interface EvaluationMetric
        Returns:
        the number of search hits this metrics requests
      • getWriteableName

        public java.lang.String getWriteableName()
        Specified by:
        getWriteableName in interface org.elasticsearch.common.io.stream.NamedWriteable
      • getRelevantRatingThreshold

        public int getRelevantRatingThreshold()
        Return the rating threshold above which ratings are considered to be "relevant".
      • evaluate

        public EvalQueryQuality evaluate​(java.lang.String taskId,
                                         org.elasticsearch.search.SearchHit[] hits,
                                         java.util.List<RatedDocument> ratedDocs)
        Compute ReciprocalRank based on provided relevant document IDs.
        Specified by:
        evaluate in interface EvaluationMetric
        Parameters:
        taskId - an identifier of the query for which the search ranking is evaluated
        hits - the search result hits
        ratedDocs - the documents that contain the document rating for this query case
        Returns:
        an EvalQueryQuality instance that contains the metric score with respect to the provided search hits and ratings
      • fromXContent

        public static MeanReciprocalRank fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser)
      • toXContent

        public org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder,
                                                                            org.elasticsearch.common.xcontent.ToXContent.Params params)
                                                                     throws java.io.IOException
        Specified by:
        toXContent in interface org.elasticsearch.common.xcontent.ToXContent
        Throws:
        java.io.IOException
      • equals

        public final boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object