You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gs...@apache.org on 2021/08/26 21:45:19 UTC

[lucene-solr] branch branch_8x updated: Fix a DrillSideways unit test I broke when adding more tests in LUCENE-10060 (#2562)

This is an automated email from the ASF dual-hosted git repository.

gsmiller pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8x by this push:
     new b451640  Fix a DrillSideways unit test I broke when adding more tests in LUCENE-10060 (#2562)
b451640 is described below

commit b45164059fa2c2964cf3d89f28f480582f05e62b
Author: Greg Miller <gs...@gmail.com>
AuthorDate: Thu Aug 26 14:45:00 2021 -0700

    Fix a DrillSideways unit test I broke when adding more tests in LUCENE-10060 (#2562)
---
 .../org/apache/lucene/facet/TestDrillSideways.java | 27 ++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java b/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java
index 75b01a4..6dd7a1c 100644
--- a/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java
+++ b/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java
@@ -214,7 +214,8 @@ public class TestDrillSideways extends FacetTestCase {
 
     // We'll use a CollectorManager to trigger the trickiest caching behavior:
     SimpleCollectorManager collectorManager =
-        new SimpleCollectorManager(10, Comparator.comparing(cr -> cr.id));
+        new SimpleCollectorManager(
+            10, Comparator.comparing(cr -> cr.id), ScoreMode.COMPLETE_NO_SCORES);
     // Make sure our CM produces Collectors that _do not_ need scores to ensure IndexSearcher tries
     // to cache:
     assertFalse(collectorManager.newCollector().scoreMode().needsScores());
@@ -232,7 +233,7 @@ public class TestDrillSideways extends FacetTestCase {
         concurrentResult.facets.getTopChildren(10, "Size").toString());
 
     // Now do the same thing but use a Collector directly:
-    SimpleCollector collector = new SimpleCollector();
+    SimpleCollector collector = new SimpleCollector(ScoreMode.COMPLETE_NO_SCORES);
     // Make sure our Collector _does not_ need scores to ensure IndexSearcher tries to cache:
     assertFalse(collector.scoreMode().needsScores());
     // If we incorrectly cache here, the "sideways" FacetsCollectors will get populated with counts
@@ -1238,6 +1239,12 @@ public class TestDrillSideways extends FacetTestCase {
 
         CollectorManager<SimpleCollector, List<DocAndScore>> manager =
             new SimpleCollectorManager(numDocs, Comparator.comparing(cr -> cr.id));
+        // Because we validate the scores computed through DrillSideways against those found through
+        // a direct search
+        // against IndexSearcher, make sure our Collectors announce themselves as requiring scores.
+        // See conversation
+        // in LUCENE-10060 where this bug was introduced and then discovered:
+        assertTrue(manager.newCollector().scoreMode.needsScores());
         DrillSideways.ConcurrentDrillSidewaysResult<List<DocAndScore>> cr = ds.search(ddq, manager);
         actual.results = cr.collectorResult;
         actual.resultCount = new TotalHits(actual.results.size(), TotalHits.Relation.EQUAL_TO);
@@ -1349,8 +1356,13 @@ public class TestDrillSideways extends FacetTestCase {
 
   private static class SimpleCollector implements Collector {
 
+    private final ScoreMode scoreMode;
     final List<CollectedResult> hits = new ArrayList<>();
 
+    SimpleCollector(ScoreMode scoreMode) {
+      this.scoreMode = scoreMode;
+    }
+
     @Override
     public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
 
@@ -1377,7 +1389,7 @@ public class TestDrillSideways extends FacetTestCase {
 
     @Override
     public ScoreMode scoreMode() {
-      return ScoreMode.COMPLETE_NO_SCORES;
+      return scoreMode;
     }
   }
 
@@ -1385,15 +1397,22 @@ public class TestDrillSideways extends FacetTestCase {
       implements CollectorManager<SimpleCollector, List<DocAndScore>> {
     private final int numDocs;
     private final Comparator<CollectedResult> comparator;
+    private final ScoreMode scoreMode;
 
     SimpleCollectorManager(int numDocs, Comparator<CollectedResult> comparator) {
+      this(numDocs, comparator, ScoreMode.COMPLETE);
+    }
+
+    SimpleCollectorManager(
+        int numDocs, Comparator<CollectedResult> comparator, ScoreMode scoreMode) {
       this.numDocs = numDocs;
       this.comparator = comparator;
+      this.scoreMode = scoreMode;
     }
 
     @Override
     public SimpleCollector newCollector() {
-      return new SimpleCollector();
+      return new SimpleCollector(scoreMode);
     }
 
     @Override