public abstract class TopFieldCollector extends TopDocsCollector<FieldValueHitQueue.Entry>
Collector
that sorts by SortField
using
FieldComparator
s.
See the create(org.apache.lucene.search.Sort, int, int)
method
for instantiating a TopFieldCollector.
EMPTY_TOPDOCS, pq, totalHits, totalHitsRelation
Modifier and Type | Method and Description |
---|---|
static TopFieldCollector |
create(Sort sort,
int numHits,
FieldDoc after,
int totalHitsThreshold)
Creates a new
TopFieldCollector from the given
arguments. |
static TopFieldCollector |
create(Sort sort,
int numHits,
int totalHitsThreshold)
Creates a new
TopFieldCollector from the given
arguments. |
static CollectorManager<TopFieldCollector,TopFieldDocs> |
createSharedManager(Sort sort,
int numHits,
FieldDoc after,
int totalHitsThreshold)
Create a CollectorManager which uses a shared hit counter to maintain number of hits
and a shared
MaxScoreAccumulator to propagate the minimum score accross segments if
the primary sort is by relevancy. |
boolean |
isEarlyTerminated()
Return whether collection terminated early.
|
protected TopDocs |
newTopDocs(ScoreDoc[] results,
int start)
Returns a
TopDocs instance containing the given results. |
protected void |
populateResults(ScoreDoc[] results,
int howMany)
Populates the results array with the ScoreDoc instances.
|
static void |
populateScores(ScoreDoc[] topDocs,
IndexSearcher searcher,
Query query)
Populate
scores of the given topDocs . |
ScoreMode |
scoreMode()
Indicates what features are required from the scorer.
|
TopFieldDocs |
topDocs()
Returns the top docs that were collected by this collector.
|
protected void |
updateGlobalMinCompetitiveScore(Scorable scorer) |
protected void |
updateMinCompetitiveScore(Scorable scorer) |
getTotalHits, topDocs, topDocs, topDocsSize
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getLeafCollector
public ScoreMode scoreMode()
Collector
protected void updateGlobalMinCompetitiveScore(Scorable scorer) throws IOException
IOException
protected void updateMinCompetitiveScore(Scorable scorer) throws IOException
IOException
public static TopFieldCollector create(Sort sort, int numHits, int totalHitsThreshold)
TopFieldCollector
from the given
arguments.
NOTE: The instances returned by this method
pre-allocate a full array of length
numHits
.
sort
- the sort criteria (SortFields).numHits
- the number of results to collect.totalHitsThreshold
- the number of docs to count accurately. If the query matches more than
totalHitsThreshold
hits then its hit count will be a
lower bound. On the other hand if the query matches less than or exactly
totalHitsThreshold
hits then the hit count of the result will
be accurate. Integer.MAX_VALUE
may be used to make the hit
count accurate, but this will also make query processing slower.TopFieldCollector
instance which will sort the results by
the sort criteria.public static TopFieldCollector create(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)
TopFieldCollector
from the given
arguments.
NOTE: The instances returned by this method
pre-allocate a full array of length
numHits
.
sort
- the sort criteria (SortFields).numHits
- the number of results to collect.after
- only hits after this FieldDoc will be collectedtotalHitsThreshold
- the number of docs to count accurately. If the query matches more than
totalHitsThreshold
hits then its hit count will be a
lower bound. On the other hand if the query matches less than or exactly
totalHitsThreshold
hits then the hit count of the result will
be accurate. Integer.MAX_VALUE
may be used to make the hit
count accurate, but this will also make query processing slower.
Setting totalHitsThreshold less than Integer.MAX_VALUE
instructs Lucene to skip non-competitive documents whenever possible. For numeric
sort fields the skipping functionality works when the same field is indexed both
with doc values and points. In this case, there is an assumption that the same data is
stored in these points and doc values.TopFieldCollector
instance which will sort the results by
the sort criteria.public static CollectorManager<TopFieldCollector,TopFieldDocs> createSharedManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)
MaxScoreAccumulator
to propagate the minimum score accross segments if
the primary sort is by relevancy.public static void populateScores(ScoreDoc[] topDocs, IndexSearcher searcher, Query query) throws IOException
scores
of the given topDocs
.topDocs
- the top docs to populatesearcher
- the index searcher that has been used to compute topDocs
query
- the query that has been used to compute topDocs
IllegalArgumentException
- if there is evidence that topDocs
have been computed against a different searcher or a different query.IOException
protected void populateResults(ScoreDoc[] results, int howMany)
TopDocsCollector
populateResults
in class TopDocsCollector<FieldValueHitQueue.Entry>
protected TopDocs newTopDocs(ScoreDoc[] results, int start)
TopDocsCollector
TopDocs
instance containing the given results. If
results
is null it means there are no results to return,
either because there were 0 calls to collect() or because the arguments to
topDocs were invalid.newTopDocs
in class TopDocsCollector<FieldValueHitQueue.Entry>
public TopFieldDocs topDocs()
TopDocsCollector
topDocs
in class TopDocsCollector<FieldValueHitQueue.Entry>
public boolean isEarlyTerminated()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.