Package org.opensearch.index.rankeval
Class MeanReciprocalRank
java.lang.Object
org.opensearch.index.rankeval.MeanReciprocalRank
- All Implemented Interfaces:
NamedWriteable,Writeable,ToXContent,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.
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 classMeanReciprocalRank.DetailNested classes/interfaces inherited from interface org.opensearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.ParamsNested classes/interfaces inherited from interface org.opensearch.common.io.stream.Writeable
Writeable.Reader<V extends java.lang.Object>, Writeable.Writer<V extends java.lang.Object> -
Field Summary
Fields Modifier and Type Field Description static java.lang.StringNAME -
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
Modifier and Type Method Description booleanequals(java.lang.Object obj)EvalQueryQualityevaluate(java.lang.String taskId, SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Compute ReciprocalRank based on provided relevant document IDs.java.util.OptionalIntforcedSearchSize()Metrics can define a size of the search hits windows they want to retrieve by overwriting this method.static MeanReciprocalRankfromXContent(XContentParser parser)intgetRelevantRatingThreshold()Return the rating threshold above which ratings are considered to be "relevant".java.lang.StringgetWriteableName()inthashCode()XContentBuildertoXContent(XContentBuilder builder, ToXContent.Params params)voidwriteTo(StreamOutput out)
-
Field Details
-
NAME
public static final java.lang.String NAME- See Also:
- Constant Field Values
-
-
Constructor Details
-
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 Details
-
writeTo
-
forcedSearchSize
public java.util.OptionalInt forcedSearchSize()Description copied from interface:EvaluationMetricMetrics 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:
forcedSearchSizein interfaceEvaluationMetric- Returns:
- the number of search hits this metrics requests
-
getWriteableName
public java.lang.String getWriteableName()- Specified by:
getWriteableNamein interfaceNamedWriteable
-
getRelevantRatingThreshold
public int getRelevantRatingThreshold()Return the rating threshold above which ratings are considered to be "relevant". -
evaluate
public EvalQueryQuality evaluate(java.lang.String taskId, SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Compute ReciprocalRank based on provided relevant document IDs.- Specified by:
evaluatein interfaceEvaluationMetric- Parameters:
taskId- an identifier of the query for which the search ranking is evaluatedhits- the search result hitsratedDocs- the documents that contain the document rating for this query case- Returns:
- an
EvalQueryQualityinstance that contains the metric score with respect to the provided search hits and ratings
-
fromXContent
-
toXContent
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException- Specified by:
toXContentin interfaceToXContent- Throws:
java.io.IOException
-
equals
public final boolean equals(java.lang.Object obj)- Overrides:
equalsin classjava.lang.Object
-
hashCode
public final int hashCode()- Overrides:
hashCodein classjava.lang.Object
-