Class WrapperModel

All Implemented Interfaces:
org.apache.lucene.util.Accountable
Direct Known Subclasses:
DefaultWrapperModel

public abstract class WrapperModel extends AdapterModel
A scoring model that wraps the other model.

This model loads a model from an external resource during the initialization. The way of fetching the wrapped model is depended on the implementation of fetchModelMap().

This model doesn't hold the actual parameters of the wrapped model, thus it can manage large models which are difficult to upload to ZooKeeper.

Example configuration:

 {
   "class": "...",
   "name": "myModelName",
   "params": {
     ...
   }
 }
 

NOTE: no "features" are configured in the wrapper model because the wrapped model's features will be used instead. Also note that if a "store" is configured for the wrapper model then it must match the "store" of the wrapped model.

  • Field Details

  • Constructor Details

  • Method Details

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class LTRScoringModel
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class LTRScoringModel
    • validate

      protected void validate() throws ModelException
      Description copied from class: LTRScoringModel
      Validate that settings make sense and throws ModelException if they do not make sense.
      Overrides:
      validate in class LTRScoringModel
      Throws:
      ModelException
    • updateModel

      public void updateModel(LTRScoringModel model)
    • fetchModelMap

      public abstract Map<String,Object> fetchModelMap() throws ModelException
      Throws:
      ModelException
    • getNorms

      public List<Normalizer> getNorms()
      Overrides:
      getNorms in class LTRScoringModel
      Returns:
      the norms
    • getFeatures

      public List<Feature> getFeatures()
      Overrides:
      getFeatures in class LTRScoringModel
      Returns:
      the features
    • getAllFeatures

      public Collection<Feature> getAllFeatures()
      Overrides:
      getAllFeatures in class LTRScoringModel
    • ramBytesUsed

      public long ramBytesUsed()
      Specified by:
      ramBytesUsed in interface org.apache.lucene.util.Accountable
      Overrides:
      ramBytesUsed in class LTRScoringModel
    • score

      public float score(float[] modelFeatureValuesNormalized)
      Description copied from class: LTRScoringModel
      Given a list of normalized values for all features a scoring algorithm cares about, calculate and return a score.
      Specified by:
      score in class LTRScoringModel
      Parameters:
      modelFeatureValuesNormalized - List of normalized feature values. Each feature is identified by its id, which is the index in the array
      Returns:
      The final score for a document
    • explain

      public org.apache.lucene.search.Explanation explain(org.apache.lucene.index.LeafReaderContext context, int doc, float finalScore, List<org.apache.lucene.search.Explanation> featureExplanations)
      Description copied from class: LTRScoringModel
      Similar to the score() function, except it returns an explanation of how the features were used to calculate the score.
      Specified by:
      explain in class LTRScoringModel
      Parameters:
      context - Context the document is in
      doc - Document to explain
      finalScore - Original score
      featureExplanations - Explanations for each feature calculation
      Returns:
      Explanation for the scoring of a document
    • normalizeFeaturesInPlace

      public void normalizeFeaturesInPlace(float[] modelFeatureValues)
      Description copied from class: LTRScoringModel
      Goes through all the stored feature values, and calculates the normalized values for all the features that will be used for scoring.
      Overrides:
      normalizeFeaturesInPlace in class LTRScoringModel
    • getNormalizerExplanation

      public org.apache.lucene.search.Explanation getNormalizerExplanation(org.apache.lucene.search.Explanation e, int idx)
      Overrides:
      getNormalizerExplanation in class LTRScoringModel
    • toString

      public String toString()
      Overrides:
      toString in class LTRScoringModel