Class Feature

java.lang.Object
org.apache.lucene.search.Query
org.apache.solr.ltr.feature.Feature
All Implemented Interfaces:
org.apache.lucene.util.Accountable
Direct Known Subclasses:
FieldLengthFeature, FieldValueFeature, OriginalScoreFeature, SolrFeature, ValueFeature

public abstract class Feature extends org.apache.lucene.search.Query implements org.apache.lucene.util.Accountable
A recipe for computing a feature. Subclass this for specialized feature calculations.

A feature consists of

  • a name as the identifier
  • parameters to represent the specific feature

Example configuration (snippet):

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

Feature is an abstract class and concrete classes should implement the validate() function, and must implement the paramsToMap() and createWeight() methods.

  • Field Details

    • name

      protected final String name
  • Constructor Details

  • Method Details

    • getInstance

      public static Feature getInstance(SolrResourceLoader solrResourceLoader, String className, String name, Map<String,Object> params)
    • validate

      protected abstract void validate() throws FeatureException
      As part of creation of a feature instance, this function confirms that the feature parameters are valid.
      Throws:
      FeatureException - Feature Exception
    • toString

      public String toString(String field)
      Specified by:
      toString in class org.apache.lucene.search.Query
    • createWeight

      public abstract Feature.FeatureWeight createWeight(org.apache.lucene.search.IndexSearcher searcher, boolean needsScores, SolrQueryRequest request, org.apache.lucene.search.Query originalQuery, Map<String,String[]> efi) throws IOException
      Throws:
      IOException
    • getDefaultValue

      public float getDefaultValue()
    • setDefaultValue

      public void setDefaultValue(Object obj)
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class org.apache.lucene.search.Query
    • equals

      public boolean equals(Object o)
      Specified by:
      equals in class org.apache.lucene.search.Query
    • ramBytesUsed

      public long ramBytesUsed()
      Specified by:
      ramBytesUsed in interface org.apache.lucene.util.Accountable
    • visit

      public void visit(org.apache.lucene.search.QueryVisitor visitor)
      Specified by:
      visit in class org.apache.lucene.search.Query
    • getName

      public String getName()
      Returns:
      the name
    • getIndex

      public int getIndex()
      Returns:
      the id
    • setIndex

      public void setIndex(int index)
      Parameters:
      index - Unique ID for this feature. Similar to feature name, except it can be used to directly access the feature in the global list of features.
    • paramsToMap

      public abstract LinkedHashMap<String,Object> paramsToMap()
    • defaultParamsToMap

      protected LinkedHashMap<String,Object> defaultParamsToMap()