Class RatedRequest

java.lang.Object
org.opensearch.index.rankeval.RatedRequest
All Implemented Interfaces:
Writeable, ToXContent, ToXContentObject

public class RatedRequest
extends java.lang.Object
implements Writeable, ToXContentObject
Definition of a particular query in the ranking evaluation request.
This usually represents a single user search intent and consists of an id (ideally human readable and referencing the search intent), the list of indices to be queries and the SearchSourceBuilder that will be used to create the search request for this search intent.
Alternatively, a template id and template parameters can be provided instead.
Finally, a list of rated documents for this query also needs to be provided.

The json structure in the rest request looks like this:

 {
    "id": "coffee_query",
    "request": {
        "query": {
            "match": { "beverage": "coffee" }
        }
    },
    "summary_fields": ["title"],
    "ratings": [
        {"_index": "my_index", "_id": "doc1", "rating": 0},
        {"_index": "my_index", "_id": "doc2","rating": 3},
        {"_index": "my_index", "_id": "doc3", "rating": 1}
    ]
 }
 
  • Constructor Details

    • RatedRequest

      public RatedRequest​(java.lang.String id, java.util.List<RatedDocument> ratedDocs, java.util.Map<java.lang.String,​java.lang.Object> params, java.lang.String templateId)
      Create a rated request with template ids and parameters.
      Parameters:
      id - a unique name for this rated request
      ratedDocs - a list of document ratings
      params - template parameters
      templateId - a templare id
    • RatedRequest

      public RatedRequest​(java.lang.String id, java.util.List<RatedDocument> ratedDocs, SearchSourceBuilder evaluatedQuery)
      Create a rated request using a SearchSourceBuilder to define the evaluated query.
      Parameters:
      id - a unique name for this rated request
      ratedDocs - a list of document ratings
      evaluatedQuery - the query that is evaluated
  • Method Details

    • writeTo

      public void writeTo​(StreamOutput out) throws java.io.IOException
      Specified by:
      writeTo in interface Writeable
      Throws:
      java.io.IOException
    • getEvaluationRequest

      public SearchSourceBuilder getEvaluationRequest()
    • getId

      public java.lang.String getId()
      return the user supplied request id
    • getRatedDocs

      public java.util.List<RatedDocument> getRatedDocs()
      return the list of rated documents to evaluate.
    • getParams

      public java.util.Map<java.lang.String,​java.lang.Object> getParams()
      return the parameters if this request uses a template, otherwise this will be empty.
    • getTemplateId

      public java.lang.String getTemplateId()
      return the parameters if this request uses a template, otherwise this will be null.
    • getSummaryFields

      public java.util.List<java.lang.String> getSummaryFields()
      returns a list of fields that should be included in the document summary for matched documents
    • addSummaryFields

      public void addSummaryFields​(java.util.List<java.lang.String> summaryFields)
    • fromXContent

      public static RatedRequest fromXContent​(XContentParser parser)
      parse from rest representation
    • toXContent

      public XContentBuilder toXContent​(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
      Specified by:
      toXContent in interface ToXContent
      Throws:
      java.io.IOException
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • 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