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, boolean, boolean, boolean, boolean)
method
for instantiating a TopFieldCollector.Modifier and Type | Method and Description |
---|---|
boolean |
acceptsDocsOutOfOrder()
Return
true if this collector does not
require the matching docIDs to be delivered in int sort
order (smallest to largest) to Collector.collect(int) . |
static TopFieldCollector |
create(Sort sort,
int numHits,
boolean fillFields,
boolean trackDocScores,
boolean trackMaxScore,
boolean docsScoredInOrder)
Creates a new
TopFieldCollector from the given
arguments. |
static TopFieldCollector |
create(Sort sort,
int numHits,
FieldDoc after,
boolean fillFields,
boolean trackDocScores,
boolean trackMaxScore,
boolean docsScoredInOrder)
Creates a new
TopFieldCollector from the given
arguments. |
getTotalHits, topDocs, topDocs, topDocs
collect, setNextReader, setScorer
public static TopFieldCollector create(Sort sort, int numHits, boolean fillFields, boolean trackDocScores, boolean trackMaxScore, boolean docsScoredInOrder) throws IOException
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.fillFields
- specifies whether the actual field values should be returned on
the results (FieldDoc).trackDocScores
- specifies whether document scores should be tracked and set on the
results. Note that if set to false, then the results' scores will
be set to Float.NaN. Setting this to true affects performance, as
it incurs the score computation on each competitive result.
Therefore if document scores are not required by the application,
it is recommended to set it to false.trackMaxScore
- specifies whether the query's maxScore should be tracked and set
on the resulting TopDocs
. Note that if set to false,
TopDocs.getMaxScore()
returns Float.NaN. Setting this to
true affects performance as it incurs the score computation on
each result. Also, setting this true automatically sets
trackDocScores
to true as well.docsScoredInOrder
- specifies whether documents are scored in doc Id order or not by
the given Scorer
in Collector.setScorer(Scorer)
.TopFieldCollector
instance which will sort the results by
the sort criteria.IOException
- if there is a low-level I/O errorpublic static TopFieldCollector create(Sort sort, int numHits, FieldDoc after, boolean fillFields, boolean trackDocScores, boolean trackMaxScore, boolean docsScoredInOrder) throws IOException
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 collectedfillFields
- specifies whether the actual field values should be returned on
the results (FieldDoc).trackDocScores
- specifies whether document scores should be tracked and set on the
results. Note that if set to false, then the results' scores will
be set to Float.NaN. Setting this to true affects performance, as
it incurs the score computation on each competitive result.
Therefore if document scores are not required by the application,
it is recommended to set it to false.trackMaxScore
- specifies whether the query's maxScore should be tracked and set
on the resulting TopDocs
. Note that if set to false,
TopDocs.getMaxScore()
returns Float.NaN. Setting this to
true affects performance as it incurs the score computation on
each result. Also, setting this true automatically sets
trackDocScores
to true as well.docsScoredInOrder
- specifies whether documents are scored in doc Id order or not by
the given Scorer
in Collector.setScorer(Scorer)
.TopFieldCollector
instance which will sort the results by
the sort criteria.IOException
- if there is a low-level I/O errorpublic boolean acceptsDocsOutOfOrder()
Collector
true
if this collector does not
require the matching docIDs to be delivered in int sort
order (smallest to largest) to Collector.collect(int)
.
Most Lucene Query implementations will visit
matching docIDs in order. However, some queries
(currently limited to certain cases of BooleanQuery
) can achieve faster searching if the
Collector
allows them to deliver the
docIDs out of order.
Many collectors don't mind getting docIDs out of
order, so it's important to return true
here.
acceptsDocsOutOfOrder
in class Collector
Copyright © 2010 - 2020 Adobe. All Rights Reserved