From 97d066dd6b0d354193730d9f3c1f72f046f7dc6a Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Wed, 24 Jul 2024 13:07:08 +0200 Subject: [PATCH] Update TestTopDocsMerge to not rely on search(Query, Collector) (#13601) Relates to #12892 --- .../lucene/search/TestTopDocsMerge.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java b/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java index 6bc0931fe63..e683b39c310 100644 --- a/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java +++ b/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java @@ -292,26 +292,25 @@ public class TestTopDocsMerge extends LuceneTestCase { topHits = searcher.search(query, numHits); } } else { - final TopFieldCollector c = TopFieldCollector.create(sort, numHits, Integer.MAX_VALUE); - searcher.search(query, c); + TopFieldDocs topFieldDocs = + searcher.search(query, new TopFieldCollectorManager(sort, numHits, Integer.MAX_VALUE)); if (useFrom) { from = TestUtil.nextInt(random(), 0, numHits - 1); size = numHits - from; - TopDocs tempTopHits = c.topDocs(); - if (from < tempTopHits.scoreDocs.length) { + if (from < topFieldDocs.scoreDocs.length) { // Can't use TopDocs#topDocs(start, howMany), since it has different behaviour when // start >= hitCount // than TopDocs#merge currently has ScoreDoc[] newScoreDocs = - new ScoreDoc[Math.min(size, tempTopHits.scoreDocs.length - from)]; - System.arraycopy(tempTopHits.scoreDocs, from, newScoreDocs, 0, newScoreDocs.length); - tempTopHits.scoreDocs = newScoreDocs; - topHits = tempTopHits; + new ScoreDoc[Math.min(size, topFieldDocs.scoreDocs.length - from)]; + System.arraycopy(topFieldDocs.scoreDocs, from, newScoreDocs, 0, newScoreDocs.length); + topFieldDocs.scoreDocs = newScoreDocs; + topHits = topFieldDocs; } else { - topHits = new TopDocs(tempTopHits.totalHits, new ScoreDoc[0]); + topHits = new TopDocs(topFieldDocs.totalHits, new ScoreDoc[0]); } } else { - topHits = c.topDocs(0, numHits); + topHits = topFieldDocs; } }