epotyom commented on code in PR #13568:
URL: https://github.com/apache/lucene/pull/13568#discussion_r1677872262
##########
lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java:
##########
@@ -630,27 +630,47 @@ private TopFieldDocs searchAfter(
*/
public <C extends Collector, T> T search(Query query, CollectorManager<C, T>
collectorManager)
throws IOException {
- final C firstCollector = collectorManager.newCollector();
+ CollectorOwner<C, T> collectorOwner =
CollectorOwner.hire(collectorManager);
+ final C firstCollector = collectorOwner.newCollector();
query = rewrite(query, firstCollector.scoreMode().needsScores());
final Weight weight = createWeight(query, firstCollector.scoreMode(), 1);
- return search(weight, collectorManager, firstCollector);
+ search(weight, collectorOwner, firstCollector);
+ return collectorOwner.reduce();
}
- private <C extends Collector, T> T search(
- Weight weight, CollectorManager<C, T> collectorManager, C
firstCollector) throws IOException {
+ /**
+ * Lower-level search API. Search all leaves using the given {@link
CollectorOwner}, without
+ * calling {@link CollectorOwner#reduce()} so that clients can reduce and
read results themselves.
+ *
+ * <p>TODO: CollectorOwner has getResults method now (not yet used by
anything), so maybe it's ok
+ * to call reduce in this method?
+ *
+ * @lucene.experimental
+ */
+ public <C extends Collector> void searchNoReduce(Query query,
CollectorOwner<C, ?> collectorOwner)
+ throws IOException {
+ final C firstCollector = collectorOwner.newCollector();
+ query = rewrite(query, firstCollector.scoreMode().needsScores());
+ final Weight weight = createWeight(query, firstCollector.scoreMode(), 1);
+ search(weight, collectorOwner, firstCollector);
+ }
+
+ private <C extends Collector> void search(
+ Weight weight, CollectorOwner<C, ?> collectorOwner, C firstCollector)
throws IOException {
Review Comment:
Oh, will do - sorry!
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]