mikemccand commented on a change in pull request #823: LUCENE-8939: Introduce
Shared Count Early Termination In Parallel Search
URL: https://github.com/apache/lucene-solr/pull/823#discussion_r320305075
##########
File path: lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
##########
@@ -410,10 +423,34 @@ public static TopFieldCollector create(Sort sort, int
numHits, FieldDoc after,
throw new IllegalArgumentException("after.fields has " +
after.fields.length + " values but sort has " + sort.getSort().length);
}
- return new PagingFieldCollector(sort, queue, after, numHits,
totalHitsThreshold);
+ return new PagingFieldCollector(sort, queue, after, numHits,
hitsThresholdChecker);
}
}
+ /**
+ * Create a CollectorManager which uses a shared hit counter to maintain
number of hits
+ */
+ public static CollectorManager<TopFieldCollector, TopFieldDocs>
createSharedManager(Sort sort, int numHits, FieldDoc after,
+
int totalHitsThreshold) {
+ return new CollectorManager<>() {
+
+ @Override
+ public TopFieldCollector newCollector() throws IOException {
+ return create(sort, numHits, after,
HitsThresholdChecker.createShared(totalHitsThreshold));
Review comment:
Shouldn't we create the shared `HitsThresholdChecker` up front (at the top
of the `createSharedManager` method), not here? Else we are making a new
shared instance for every segment slice (searcher thread), instead of sharing a
single one for the whole query?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]