Package org.apache.solr.ltr.feature
Class Feature.FeatureWeight
- java.lang.Object
-
- org.apache.lucene.search.Weight
-
- org.apache.solr.ltr.feature.Feature.FeatureWeight
-
- All Implemented Interfaces:
org.apache.lucene.search.SegmentCacheable
- Direct Known Subclasses:
FieldLengthFeature.FieldLengthFeatureWeight
,FieldValueFeature.FieldValueFeatureWeight
,OriginalScoreFeature.OriginalScoreWeight
,SolrFeature.SolrFeatureWeight
,ValueFeature.ValueFeatureWeight
- Enclosing class:
- Feature
public abstract class Feature.FeatureWeight extends org.apache.lucene.search.Weight
Weight for a feature
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Feature.FeatureWeight.FeatureScorer
A 'recipe' for computing a featureclass
Feature.FeatureWeight.ValueFeatureScorer
Default FeatureScorer class that returns the score passed in.
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,String[]>
efi
protected MacroExpander
macroExpander
protected org.apache.lucene.search.Query
originalQuery
protected SolrQueryRequest
request
protected org.apache.lucene.search.IndexSearcher
searcher
-
Constructor Summary
Constructors Constructor Description FeatureWeight(org.apache.lucene.search.Query q, org.apache.lucene.search.IndexSearcher searcher, SolrQueryRequest request, org.apache.lucene.search.Query originalQuery, Map<String,String[]> efi)
Initialize a feature without the normalizer from the feature file.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.apache.lucene.search.Explanation
explain(org.apache.lucene.index.LeafReaderContext context, int doc)
void
extractTerms(Set<org.apache.lucene.index.Term> terms)
float
getDefaultValue()
int
getIndex()
String
getName()
boolean
isCacheable(org.apache.lucene.index.LeafReaderContext ctx)
abstract Feature.FeatureWeight.FeatureScorer
scorer(org.apache.lucene.index.LeafReaderContext context)
String
toString()
Used in the FeatureWeight's explain.
-
-
-
Field Detail
-
searcher
protected final org.apache.lucene.search.IndexSearcher searcher
-
request
protected final SolrQueryRequest request
-
macroExpander
protected final MacroExpander macroExpander
-
originalQuery
protected final org.apache.lucene.search.Query originalQuery
-
-
Constructor Detail
-
FeatureWeight
public FeatureWeight(org.apache.lucene.search.Query q, org.apache.lucene.search.IndexSearcher searcher, SolrQueryRequest request, org.apache.lucene.search.Query originalQuery, Map<String,String[]> efi)
Initialize a feature without the normalizer from the feature file. This is called on initial construction since multiple models share the same features, but have different normalizers. A concrete model's feature is copied through featForNewModel().- Parameters:
q
- Solr query associated with this FeatureWeightsearcher
- Solr searcher available for features if they need them
-
-
Method Detail
-
getName
public String getName()
-
getIndex
public int getIndex()
-
getDefaultValue
public float getDefaultValue()
-
scorer
public abstract Feature.FeatureWeight.FeatureScorer scorer(org.apache.lucene.index.LeafReaderContext context) throws IOException
- Specified by:
scorer
in classorg.apache.lucene.search.Weight
- Throws:
IOException
-
isCacheable
public boolean isCacheable(org.apache.lucene.index.LeafReaderContext ctx)
-
explain
public org.apache.lucene.search.Explanation explain(org.apache.lucene.index.LeafReaderContext context, int doc) throws IOException
- Specified by:
explain
in classorg.apache.lucene.search.Weight
- Throws:
IOException
-
toString
public String toString()
Used in the FeatureWeight's explain. Each feature should implement this returning properties of the specific scorer useful for an explain. For example "MyCustomClassFeature [name=" + name + "myVariable:" + myVariable + "]"; If not provided, a default implementation will return basic feature properties, which might not include query time specific values.
-
extractTerms
public void extractTerms(Set<org.apache.lucene.index.Term> terms)
- Specified by:
extractTerms
in classorg.apache.lucene.search.Weight
-
-