Class TopDocs

java.lang.Object
org.apache.lucene.search.TopDocs
Direct Known Subclasses:
TopFieldDocs, TopSuggestDocs

public class TopDocs extends Object
Represents hits returned by IndexSearcher.search(Query,int).
  • Field Details

    • totalHits

      public TotalHits totalHits
      The total number of hits for the query.
    • scoreDocs

      public ScoreDoc[] scoreDocs
      The top hits for the query.
  • Constructor Details

    • TopDocs

      public TopDocs(TotalHits totalHits, ScoreDoc[] scoreDocs)
      Constructs a TopDocs.
  • Method Details

    • 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. Each TopDocs instance must be sorted.
      See Also:
    • merge

      public static TopDocs merge(int start, int topN, TopDocs[] shardHits, boolean setShardIndex)
      Same as merge(int, TopDocs[]) but also ignores the top start top docs. This is typically useful for pagination. Note: If setShardIndex is true, this method will assume the incoming order of shardHits reflects each shard's index and will fill the ScoreDoc.shardIndex, otherwise it must already be set for all incoming ScoreDocs, 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 specified Sort. Each of the TopDocs must have been sorted by the same Sort, and sort field values must have been filled (ie, fillFields=true must be passed to TopFieldCollector.create(org.apache.lucene.search.Sort, int, int)).
      See Also:
    • merge

      public static TopFieldDocs merge(Sort sort, int start, int topN, TopFieldDocs[] shardHits, boolean setShardIndex)
      Same as merge(Sort, int, TopFieldDocs[]) but also ignores the top start top docs. This is typically useful for pagination. Note: If setShardIndex is true, this method will assume the incoming order of shardHits reflects each shard's index and will fill the ScoreDoc.shardIndex, otherwise it must already be set for all incoming ScoreDocs, 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 the merge(int, org.apache.lucene.search.TopDocs[]) impls. A sort value of null is used to indicate that docs should be sorted by score.