Skip to content

Commit 65cd2c8

Browse files
authored
Remove MultiCollectorWrapper and use MultiCollector in Lucene instead (#19595)
* Remove MultiCollectorWrapper and use MultiCollector in Lucene instead Signed-off-by: Binlong Gao <gbinlong@amazon.com> * Modify change log Signed-off-by: Binlong Gao <gbinlong@amazon.com> * Optimize some code Signed-off-by: Binlong Gao <gbinlong@amazon.com> * pattern matching for instanceof Signed-off-by: Binlong Gao <gbinlong@amazon.com> * Remove redundant bracket Signed-off-by: Binlong Gao <gbinlong@amazon.com> --------- Signed-off-by: Binlong Gao <gbinlong@amazon.com>
1 parent 252cff8 commit 65cd2c8

File tree

3 files changed

+20
-78
lines changed

3 files changed

+20
-78
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1414
- Faster `terms` query creation for `keyword` field with index and docValues enabled ([#19350](https://github.com/opensearch-project/OpenSearch/pull/19350))
1515
- Refactor to move prepareIndex and prepareDelete methods to Engine class ([#19551](https://github.com/opensearch-project/OpenSearch/pull/19551))
1616
- Omit maxScoreCollector in SimpleTopDocsCollectorContext when concurrent segment search enabled ([#19584](https://github.com/opensearch-project/OpenSearch/pull/19584))
17+
- Remove MultiCollectorWrapper and use MultiCollector in Lucene instead ([#19595](https://github.com/opensearch-project/OpenSearch/pull/19595))
1718

1819
### Fixed
1920
- Fix Allocation and Rebalance Constraints of WeightFunction are incorrectly reset ([#19012](https://github.com/opensearch-project/OpenSearch/pull/19012))

server/src/main/java/org/opensearch/search/query/MultiCollectorWrapper.java

Lines changed: 0 additions & 60 deletions
This file was deleted.

server/src/main/java/org/opensearch/search/query/TopDocsCollectorContext.java

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import java.util.ArrayList;
8686
import java.util.Arrays;
8787
import java.util.Collection;
88+
import java.util.List;
8889
import java.util.Objects;
8990
import java.util.function.Function;
9091
import java.util.function.Supplier;
@@ -322,15 +323,15 @@ public Collector newCollector() throws IOException {
322323
maxScoreCollector = new MaxScoreCollector();
323324
}
324325

325-
return MultiCollectorWrapper.wrap(collapseContext.createTopDocs(sort, numHits, searchAfter), maxScoreCollector);
326+
return MultiCollector.wrap(collapseContext.createTopDocs(sort, numHits, searchAfter), maxScoreCollector);
326327
}
327328

328329
@Override
329330
public ReduceableSearchResult reduce(Collection<Collector> collectors) throws IOException {
330331
final Collection<Collector> subs = new ArrayList<>();
331332
for (final Collector collector : collectors) {
332-
if (collector instanceof MultiCollectorWrapper) {
333-
subs.addAll(((MultiCollectorWrapper) collector).getCollectors());
333+
if (collector instanceof MultiCollector m) {
334+
subs.addAll(List.of(m.getCollectors()));
334335
} else {
335336
subs.add(collector);
336337
}
@@ -340,10 +341,10 @@ public ReduceableSearchResult reduce(Collection<Collector> collectors) throws IO
340341
float maxScore = Float.NaN;
341342

342343
for (final Collector collector : subs) {
343-
if (collector instanceof CollapsingTopDocsCollector<?>) {
344-
topFieldDocs.add(((CollapsingTopDocsCollector<?>) collector).getTopDocs());
345-
} else if (collector instanceof MaxScoreCollector) {
346-
float score = ((MaxScoreCollector) collector).getMaxScore();
344+
if (collector instanceof CollapsingTopDocsCollector<?> c) {
345+
topFieldDocs.add(c.getTopDocs());
346+
} else if (collector instanceof MaxScoreCollector msc) {
347+
float score = msc.getMaxScore();
347348
if (Float.isNaN(maxScore)) {
348349
maxScore = score;
349350
} else {
@@ -549,7 +550,7 @@ public Collector newCollector() throws IOException {
549550
maxScoreCollector = new MaxScoreCollector();
550551
}
551552

552-
return MultiCollectorWrapper.wrap(manager.newCollector(), maxScoreCollector);
553+
return MultiCollector.wrap(manager.newCollector(), maxScoreCollector);
553554
}
554555

555556
@SuppressWarnings("unchecked")
@@ -559,18 +560,18 @@ public ReduceableSearchResult reduce(Collection<Collector> collectors) throws IO
559560
final Collection<MaxScoreCollector> maxScoreCollectors = new ArrayList<>();
560561

561562
for (final Collector collector : collectors) {
562-
if (collector instanceof MultiCollectorWrapper) {
563-
for (final Collector sub : (((MultiCollectorWrapper) collector).getCollectors())) {
564-
if (sub instanceof TopDocsCollector<?>) {
565-
topDocsCollectors.add((TopDocsCollector<?>) sub);
566-
} else if (sub instanceof MaxScoreCollector) {
567-
maxScoreCollectors.add((MaxScoreCollector) sub);
563+
if (collector instanceof MultiCollector m) {
564+
for (final Collector sub : m.getCollectors()) {
565+
if (sub instanceof TopDocsCollector<?> tdc) {
566+
topDocsCollectors.add(tdc);
567+
} else if (sub instanceof MaxScoreCollector msc) {
568+
maxScoreCollectors.add(msc);
568569
}
569570
}
570-
} else if (collector instanceof TopDocsCollector<?>) {
571-
topDocsCollectors.add((TopDocsCollector<?>) collector);
572-
} else if (collector instanceof MaxScoreCollector) {
573-
maxScoreCollectors.add((MaxScoreCollector) collector);
571+
} else if (collector instanceof TopDocsCollector<?> c) {
572+
topDocsCollectors.add(c);
573+
} else if (collector instanceof MaxScoreCollector msc) {
574+
maxScoreCollectors.add(msc);
574575
}
575576
}
576577

0 commit comments

Comments
 (0)