Package org.apache.lucene.search
Class TopDocs
- java.lang.Object
-
- org.apache.lucene.search.TopDocs
-
- Direct Known Subclasses:
TopFieldDocs,TopSuggestDocs
public class TopDocs extends java.lang.ObjectRepresents hits returned byIndexSearcher.search(Query,int).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classTopDocs.MergeSortQueueprivate static classTopDocs.ScoreMergeSortQueueprivate static classTopDocs.ShardRef
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static TopDocsmerge(int start, int topN, TopDocs[] shardHits, boolean setShardIndex)Same asmerge(int, TopDocs[])but also ignores the topstarttop docs.static TopDocsmerge(int topN, TopDocs[] shardHits)Returns a new TopDocs, containing topN results across the provided TopDocs, sorting by score.static TopFieldDocsmerge(Sort sort, int start, int topN, TopFieldDocs[] shardHits, boolean setShardIndex)Same asmerge(Sort, int, TopFieldDocs[])but also ignores the topstarttop docs.static TopFieldDocsmerge(Sort sort, int topN, TopFieldDocs[] shardHits)Returns a new TopFieldDocs, containing topN results across the provided TopFieldDocs, sorting by the specifiedSort.private static TopDocsmergeAux(Sort sort, int start, int size, TopDocs[] shardHits, boolean setShardIndex)Auxiliary method used by themerge(int, org.apache.lucene.search.TopDocs[])impls.(package private) static booleantieBreakLessThan(TopDocs.ShardRef first, ScoreDoc firstDoc, TopDocs.ShardRef second, ScoreDoc secondDoc)if we need to tie-break since score / sort value are the same we first compare shard index (lower shard wins) and then iff shard index is the same we use the hit index.
-
-
-
Method Detail
-
tieBreakLessThan
static boolean tieBreakLessThan(TopDocs.ShardRef first, ScoreDoc firstDoc, TopDocs.ShardRef second, ScoreDoc secondDoc)
if we need to tie-break since score / sort value are the same we first compare shard index (lower shard wins) and then iff shard index is the same we use the hit index.
-
merge
public static TopDocs merge(int topN, TopDocs[] shardHits)
Returns a new TopDocs, containing topN results across the provided TopDocs, sorting by score. EachTopDocsinstance must be sorted.- See Also:
merge(int, int, TopDocs[], boolean)
-
merge
public static TopDocs merge(int start, int topN, TopDocs[] shardHits, boolean setShardIndex)
Same asmerge(int, TopDocs[])but also ignores the topstarttop docs. This is typically useful for pagination. Note: IfsetShardIndexis true, this method will assume the incoming order ofshardHitsreflects each shard's index and will fill theScoreDoc.shardIndex, otherwise it must already be set for all incomingScoreDocs, which can be useful when doing multiple reductions (merges) of TopDocs.
-
merge
public static TopFieldDocs merge(Sort sort, int topN, TopFieldDocs[] shardHits)
Returns a new TopFieldDocs, containing topN results across the provided TopFieldDocs, sorting by the specifiedSort. Each of the TopDocs must have been sorted by the same Sort, and sort field values must have been filled (ie,fillFields=truemust be passed toTopFieldCollector.create(org.apache.lucene.search.Sort, int, int)).
-
merge
public static TopFieldDocs merge(Sort sort, int start, int topN, TopFieldDocs[] shardHits, boolean setShardIndex)
Same asmerge(Sort, int, TopFieldDocs[])but also ignores the topstarttop docs. This is typically useful for pagination. Note: IfsetShardIndexis true, this method will assume the incoming order ofshardHitsreflects each shard's index and will fill theScoreDoc.shardIndex, otherwise it must already be set for all incomingScoreDocs, which can be useful when doing multiple reductions (merges) of TopDocs.
-
mergeAux
private static TopDocs mergeAux(Sort sort, int start, int size, TopDocs[] shardHits, boolean setShardIndex)
Auxiliary method used by themerge(int, org.apache.lucene.search.TopDocs[])impls. A sort value of null is used to indicate that docs should be sorted by score.
-
-