Package org.opensearch.index.rankeval
Interface EvaluationMetric
- All Superinterfaces:
NamedWriteable,ToXContent,ToXContentObject,Writeable
- All Known Implementing Classes:
DiscountedCumulativeGain,ExpectedReciprocalRank,MeanReciprocalRank,PrecisionAtK,RecallAtK
public interface EvaluationMetric extends ToXContentObject, NamedWriteable
Implementations of
EvaluationMetric need to provide a way to compute the quality metric for
a result list returned by some search (@link SearchHits) and a list of rated documents.-
Nested Class Summary
Nested 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
-
Method Summary
Modifier and Type Method Description default doublecombine(java.util.Collection<EvalQueryQuality> partialResults)Combine severalEvalQueryQualityresults into the overall evaluation score.EvalQueryQualityevaluate(java.lang.String taskId, SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Evaluates a single ranking evaluation case.static java.util.List<org.opensearch.index.rankeval.RatedDocument.DocumentKey>filterUnratedDocuments(java.util.List<RatedSearchHit> ratedHits)FilterRatedSearchHits that do not have a rating.default java.util.OptionalIntforcedSearchSize()Metrics can define a size of the search hits windows they want to retrieve by overwriting this method.static java.util.List<RatedSearchHit>joinHitsWithRatings(SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Joins hits with rated documents using the joint _index/_id document key.
-
Method Details
-
evaluate
EvalQueryQuality evaluate(java.lang.String taskId, SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Evaluates a single ranking evaluation case.- 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
-
joinHitsWithRatings
static java.util.List<RatedSearchHit> joinHitsWithRatings(SearchHit[] hits, java.util.List<RatedDocument> ratedDocs)Joins hits with rated documents using the joint _index/_id document key. -
filterUnratedDocuments
static java.util.List<org.opensearch.index.rankeval.RatedDocument.DocumentKey> filterUnratedDocuments(java.util.List<RatedSearchHit> ratedHits)FilterRatedSearchHits that do not have a rating. -
combine
Combine severalEvalQueryQualityresults into the overall evaluation score. This defaults to averaging over the partial results, but can be overwritten to obtain a different behavior. -
forcedSearchSize
default java.util.OptionalInt forcedSearchSize()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.- Returns:
- the number of search hits this metrics requests
-