public class TopDocs
extends java.lang.Object
IndexSearcher.search(Query,int)
.Modifier and Type | Class and Description |
---|---|
private static class |
TopDocs.MergeSortQueue |
private static class |
TopDocs.ScoreMergeSortQueue |
private static class |
TopDocs.ShardRef |
Modifier and Type | Field and Description |
---|---|
private float |
maxScore
Stores the maximum score value encountered, needed for normalizing.
|
ScoreDoc[] |
scoreDocs
The top hits for the query.
|
long |
totalHits
The total number of hits for the query.
|
Constructor and Description |
---|
TopDocs(long totalHits,
ScoreDoc[] scoreDocs)
Constructs a TopDocs with a default maxScore=Float.NaN.
|
TopDocs(long totalHits,
ScoreDoc[] scoreDocs,
float maxScore) |
Modifier and Type | Method and Description |
---|---|
float |
getMaxScore()
Returns the maximum score value encountered.
|
static TopDocs |
merge(int start,
int topN,
TopDocs[] shardHits,
boolean setShardIndex)
Same as
merge(int, TopDocs[]) but also ignores the top
start top docs. |
static TopDocs |
merge(int topN,
TopDocs[] shardHits)
Returns a new TopDocs, containing topN results across
the provided TopDocs, sorting by score.
|
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. |
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 . |
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. |
void |
setMaxScore(float maxScore)
Sets the maximum score value encountered.
|
(package private) 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.
|
public long totalHits
public ScoreDoc[] scoreDocs
private float maxScore
TopDocs(long totalHits, ScoreDoc[] scoreDocs)
public TopDocs(long totalHits, ScoreDoc[] scoreDocs, float maxScore)
public float getMaxScore()
Float.NaN
.public void setMaxScore(float maxScore)
static boolean tieBreakLessThan(TopDocs.ShardRef first, ScoreDoc firstDoc, TopDocs.ShardRef second, ScoreDoc secondDoc)
public static TopDocs merge(int topN, TopDocs[] shardHits)
TopDocs
instance must be sorted.merge(int, int, TopDocs[], boolean)
public static TopDocs merge(int start, int topN, TopDocs[] shardHits, boolean setShardIndex)
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 ScoreDoc
s, which can be useful when doing multiple reductions
(merges) of TopDocs.public static TopFieldDocs merge(Sort sort, int topN, TopFieldDocs[] shardHits)
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, boolean, boolean, boolean)
).public static TopFieldDocs merge(Sort sort, int start, int topN, TopFieldDocs[] shardHits, boolean setShardIndex)
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 ScoreDoc
s, which can be useful when doing multiple reductions
(merges) of TopDocs.private static TopDocs mergeAux(Sort sort, int start, int size, TopDocs[] shardHits, boolean setShardIndex)
merge(int, org.apache.lucene.search.TopDocs[])
impls. A sort value of null
is used to indicate that docs should be sorted by score.