Class Weight
- java.lang.Object
- 
- org.apache.lucene.search.Weight
 
- 
- All Implemented Interfaces:
- SegmentCacheable
 - Direct Known Subclasses:
- ConstantScoreWeight,- DisjunctionMaxQuery.DisjunctionMaxWeight,- FilterWeight,- IndriAndWeight,- PhraseWeight
 
 public abstract class Weight extends Object implements SegmentCacheable Expert: Calculate query weights and build query scorers.The purpose of Weightis to ensure searching does not modify aQuery, so that aQueryinstance can be reused.IndexSearcherdependent state of the query should reside in theWeight.LeafReaderdependent state should reside in theScorer.Since WeightcreatesScorerinstances for a givenLeafReaderContext(scorer(org.apache.lucene.index.LeafReaderContext)) callers must maintain the relationship between the searcher's top-levelIndexReaderContextand the context used to create aScorer.A Weightis used in the following way:- A Weightis constructed by a top-level query, given aIndexSearcher(Query.createWeight(IndexSearcher, ScoreMode, float)).
- A Scoreris constructed byscorer(org.apache.lucene.index.LeafReaderContext).
 - Since:
- 2.9
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected static classWeight.DefaultBulkScorerJust wraps a Scorer and performs top scoring using it.
 - 
Field SummaryFields Modifier and Type Field Description protected QueryparentQuery
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description BulkScorerbulkScorer(LeafReaderContext context)Optional method, to return aBulkScorerto score the query and send hits to aCollector.intcount(LeafReaderContext context)Counts the number of live documents that match a givenparentQueryin a leaf.abstract Explanationexplain(LeafReaderContext context, int doc)An explanation of the score computation for the named document.QuerygetQuery()The query that this concerns.Matchesmatches(LeafReaderContext context, int doc)ReturnsMatchesfor a specific document, ornullif the document does not match the parent queryabstract Scorerscorer(LeafReaderContext context)Returns aScorerwhich can iterate in order over all matching documents and assign them a score.ScorerSupplierscorerSupplier(LeafReaderContext context)Optional method.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.apache.lucene.search.SegmentCacheableisCacheable
 
- 
 
- 
- 
- 
Field Detail- 
parentQueryprotected final Query parentQuery 
 
- 
 - 
Constructor Detail- 
Weightprotected Weight(Query query) Sole constructor, typically invoked by sub-classes.- Parameters:
- query- the parent query
 
 
- 
 - 
Method Detail- 
matchespublic Matches matches(LeafReaderContext context, int doc) throws IOException ReturnsMatchesfor a specific document, ornullif the document does not match the parent queryA query match that contains no position information (for example, a Point or DocValues query) will return MatchesUtils.MATCH_WITH_NO_TERMS- Parameters:
- context- the reader's context to create the- Matchesfor
- doc- the document's id relative to the given context's reader
- Throws:
- IOException
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 - 
explainpublic abstract Explanation explain(LeafReaderContext context, int doc) throws IOException An explanation of the score computation for the named document.- Parameters:
- context- the readers context to create the- Explanationfor.
- doc- the document's id relative to the given context's reader
- Returns:
- an Explanation for the score
- Throws:
- IOException- if an- IOExceptionoccurs
 
 - 
getQuerypublic final Query getQuery() The query that this concerns.
 - 
scorerpublic abstract Scorer scorer(LeafReaderContext context) throws IOException Returns aScorerwhich can iterate in order over all matching documents and assign them a score.NOTE: null can be returned if no documents will be scored by this query. NOTE: The returned Scorerdoes not haveLeafReader.getLiveDocs()applied, they need to be checked on top.- Parameters:
- context- the- LeafReaderContextfor which to return the- Scorer.
- Returns:
- a Scorerwhich scores documents in/out-of order.
- Throws:
- IOException- if there is a low-level I/O error
 
 - 
scorerSupplierpublic ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOException Optional method. Get aScorerSupplier, which allows to know the cost of theScorerbefore building it. The default implementation callsscorer(org.apache.lucene.index.LeafReaderContext)and builds aScorerSupplierwrapper around it.- Throws:
- IOException
- See Also:
- scorer(org.apache.lucene.index.LeafReaderContext)
 
 - 
bulkScorerpublic BulkScorer bulkScorer(LeafReaderContext context) throws IOException Optional method, to return aBulkScorerto score the query and send hits to aCollector. Only queries that have a different top-level approach need to override this; the default implementation pulls a normalScorerand iterates and collects the resulting hits which are not marked as deleted.- Parameters:
- context- the- LeafReaderContextfor which to return the- Scorer.
- Returns:
- a BulkScorerwhich scores documents and passes them to a collector.
- Throws:
- IOException- if there is a low-level I/O error
 
 - 
countpublic int count(LeafReaderContext context) throws IOException Counts the number of live documents that match a givenparentQueryin a leaf.The default implementation returns -1 for every query. This indicates that the count could not be computed in sub-linear time. Specific query classes should override it to provide other accurate sub-linear implementations (that actually return the count). Look at MatchAllDocsQuery.createWeight(IndexSearcher, ScoreMode, float)for an exampleWe use this property of the function to count hits in IndexSearcher.count(Query).- Parameters:
- context- the- LeafReaderContextfor which to return the count.
- Returns:
- integer count of the number of matches
- Throws:
- IOException- if there is a low-level I/O error
 
 
- 
 
-