Skip to content

Commit 6d94ce2

Browse files
committed
Fix count discrepancy
1 parent c05778d commit 6d94ce2

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

kaldb/src/main/java/com/slack/kaldb/logstore/search/LogIndexSearcherImpl.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public SearchResult<LogMessage> search(
121121

122122
if (howMany > 0) {
123123
CollectorManager<TopFieldCollector, TopFieldDocs> topFieldCollector =
124-
buildTopFieldCollector(howMany);
124+
buildTopFieldCollector(howMany, bucketCount > 0);
125125
MultiCollectorManager collectorManager = new MultiCollectorManager(topFieldCollector);
126126
if (bucketCount > 0) {
127127
collectorManager = new MultiCollectorManager(topFieldCollector, statsCollector);
@@ -178,10 +178,14 @@ private LogMessage buildLogMessage(IndexSearcher searcher, ScoreDoc hit) {
178178
}
179179
}
180180

181-
private CollectorManager<TopFieldCollector, TopFieldDocs> buildTopFieldCollector(int howMany) {
181+
private CollectorManager<TopFieldCollector, TopFieldDocs> buildTopFieldCollector(
182+
int howMany, boolean useMaxHitsThreshold) {
182183
if (howMany > 0) {
183184
SortField sortField = new SortField(SystemField.TIME_SINCE_EPOCH.fieldName, Type.LONG, true);
184-
return TopFieldCollector.createSharedManager(new Sort(sortField), howMany, null, howMany);
185+
// if we need an accurate totalResults count then useMaxHitsThreshold should be true,
186+
// otherwise false will allow the search to early exit
187+
return TopFieldCollector.createSharedManager(
188+
new Sort(sortField), howMany, null, useMaxHitsThreshold ? Integer.MAX_VALUE : howMany);
185189
} else {
186190
return null;
187191
}

0 commit comments

Comments
 (0)