Update SimpleStreamSearcher.java
This commit is contained in:
parent
918ff71091
commit
20069e7e06
@ -32,29 +32,43 @@ public class SimpleStreamSearcher implements LuceneStreamSearcher {
|
|||||||
scoreMode != ScoreMode.COMPLETE_NO_SCORES,
|
scoreMode != ScoreMode.COMPLETE_NO_SCORES,
|
||||||
1000
|
1000
|
||||||
);
|
);
|
||||||
|
var firstTopDocs = searcher.getTopDocs(0, 1);
|
||||||
|
long totalHitsCount = firstTopDocs.totalHits.value;
|
||||||
return new LuceneSearchInstance() {
|
return new LuceneSearchInstance() {
|
||||||
@Override
|
@Override
|
||||||
public long getTotalHitsCount() throws IOException {
|
public long getTotalHitsCount() {
|
||||||
return searcher.getTopDocs(0, 1).totalHits.value;
|
return totalHitsCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getResults(ResultItemConsumer resultsConsumer) throws IOException {
|
public void getResults(ResultItemConsumer resultsConsumer) throws IOException {
|
||||||
ObjectArrayList<ScoreDoc> hits = ObjectArrayList.wrap(searcher.getTopDocs(offset, limit).scoreDocs);
|
if (firstTopDocs.scoreDocs.length > 0) {
|
||||||
|
{
|
||||||
|
var hit = firstTopDocs.scoreDocs[0];
|
||||||
|
if (publishHit(hit, resultsConsumer) == HandleResult.HALT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ObjectArrayList<ScoreDoc> hits = ObjectArrayList.wrap(searcher.getTopDocs(offset, limit - 1).scoreDocs);
|
||||||
for (ScoreDoc hit : hits) {
|
for (ScoreDoc hit : hits) {
|
||||||
|
if (publishHit(hit, resultsConsumer) == HandleResult.HALT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private HandleResult publishHit(ScoreDoc hit, ResultItemConsumer resultsConsumer) throws IOException {
|
||||||
int docId = hit.doc;
|
int docId = hit.doc;
|
||||||
float score = hit.score;
|
float score = hit.score;
|
||||||
if (LuceneUtils.collectTopDoc(logger,
|
return LuceneUtils.collectTopDoc(logger,
|
||||||
docId,
|
docId,
|
||||||
score,
|
score,
|
||||||
minCompetitiveScore,
|
minCompetitiveScore,
|
||||||
indexSearcher,
|
indexSearcher,
|
||||||
keyFieldName,
|
keyFieldName,
|
||||||
resultsConsumer
|
resultsConsumer
|
||||||
) == HandleResult.HALT) {
|
);
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user