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

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


The following commit(s) were added to refs/heads/ishan/upgrade-to-lucene-10 by 
this push:
     new f49066703dd Adding our own scorer supplier
f49066703dd is described below

commit f49066703dd4bf9c70ebd9dc85f8935a793ee938
Author: Ishan Chattopadhyaya <[email protected]>
AuthorDate: Fri Jan 17 15:45:14 2025 +0530

    Adding our own scorer supplier
---
 .../java/org/apache/solr/query/SolrRangeQuery.java |  5 +++--
 .../java/org/apache/solr/search/DocSetQuery.java   |  3 ++-
 .../solr/search/GraphTermsQParserPlugin.java       |  5 +++--
 .../src/java/org/apache/solr/search/JoinQuery.java |  3 ++-
 .../org/apache/solr/search/MatchCostQuery.java     |  5 +++--
 .../org/apache/solr/search/TermsQParserPlugin.java |  3 ++-
 .../org/apache/solr/search/TopLevelJoinQuery.java  |  3 ++-
 .../search/function/ValueSourceRangeFilter.java    |  3 ++-
 .../solr/search/join/BlockJoinParentQParser.java   |  3 ++-
 .../solr/search/join/CrossCollectionJoinQuery.java |  3 ++-
 .../org/apache/solr/search/join/GraphQuery.java    |  3 ++-
 .../apache/solr/search/join/HashRangeQuery.java    |  3 ++-
 .../apache/solr/update/DeleteByQueryWrapper.java   |  3 ++-
 .../org/apache/solr/update/SolrIndexSplitter.java  |  3 ++-
 .../solr/util/SolrDefaultScorerSupplier.java       | 25 ++++++++++++++++++++++
 .../solr/uninverting/TestFieldCacheSortRandom.java |  3 ++-
 16 files changed, 58 insertions(+), 18 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java 
b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
index 3c8f33b97a4..03a50758496 100644
--- a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
@@ -42,6 +42,7 @@ import org.apache.solr.search.DocSetProducer;
 import org.apache.solr.search.DocSetUtil;
 import org.apache.solr.search.ExtendedQueryBase;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 import org.apache.solr.util.TestInjection;
 
 /**
@@ -514,7 +515,7 @@ public final class SolrRangeQuery extends ExtendedQueryBase 
implements DocSetPro
       if (disi == null) {
         return null;
       }
-      return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, disi));
+      return new SolrDefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, disi));
     }
 
     //TBD already implements a scorerSupplier() . So this need not be 
overridden
@@ -537,7 +538,7 @@ public final class SolrRangeQuery extends ExtendedQueryBase 
implements DocSetPro
     public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       final SegState weightOrBitSet = getSegState(context);
       if (weightOrBitSet.weight != null) {
-        return new 
DefaultScorerSupplier(weightOrBitSet.weight.scorer(context));
+        return new 
SolrDefaultScorerSupplier(weightOrBitSet.weight.scorer(context));
       } else {
         return scorerSupplier(weightOrBitSet.set);
       }
diff --git a/solr/core/src/java/org/apache/solr/search/DocSetQuery.java 
b/solr/core/src/java/org/apache/solr/search/DocSetQuery.java
index 623b2fc01a0..74eb44b1543 100644
--- a/solr/core/src/java/org/apache/solr/search/DocSetQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/DocSetQuery.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.*;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /**
  * A Query based on a {@link DocSet}. The un-boosted score is always 1.
@@ -77,7 +78,7 @@ class DocSetQuery extends Query implements DocSetProducer {
         if (disi == null) {
           return null;
         }
-        return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, disi));
+        return new SolrDefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, disi));
       }
 
       @Override
diff --git 
a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java 
b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
index 7657018949c..623f1a0b52a 100644
--- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
@@ -53,6 +53,7 @@ import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.NumberType;
 import org.apache.solr.schema.SchemaField;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /**
  * The GraphTermsQuery builds a disjunction query from a list of terms. The 
terms are first filtered
@@ -262,7 +263,7 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
           }
           DocIdSet docIdSet = builder.build();
           DocIdSetIterator disi = docIdSet.iterator();
-          return disi == null ? null : new DefaultScorerSupplier(new 
ConstantScoreScorer(score(), scoreMode, disi));
+          return disi == null ? null : new SolrDefaultScorerSupplier(new 
ConstantScoreScorer(score(), scoreMode, disi));
         }
 
         @Override
@@ -591,7 +592,7 @@ abstract class PointSetQuery extends Query implements 
DocSetProducer, Accountabl
         if (readerSetIterator == null) {
           return null;
         }
-        return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, readerSetIterator));
+        return new SolrDefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, readerSetIterator));
       }
 
       @Override
diff --git a/solr/core/src/java/org/apache/solr/search/JoinQuery.java 
b/solr/core/src/java/org/apache/solr/search/JoinQuery.java
index 6fb5f21d760..b112caf8b8c 100644
--- a/solr/core/src/java/org/apache/solr/search/JoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/JoinQuery.java
@@ -45,6 +45,7 @@ import org.apache.solr.schema.TrieField;
 import org.apache.solr.search.join.GraphPointsCollector;
 import org.apache.solr.util.RTimer;
 import org.apache.solr.util.RefCounted;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 class JoinQuery extends Query {
   String fromField;
@@ -180,7 +181,7 @@ class JoinQuery extends Query {
       if (readerSetIterator == null) {
         return null;
       }
-      return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, readerSetIterator));
+      return new SolrDefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, readerSetIterator));
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java 
b/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
index 165ec18167b..d7dba09fdd9 100644
--- a/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
@@ -22,6 +22,7 @@ import java.util.Objects;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.*;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /** Wraps a {@link Query} to customize the {@link 
TwoPhaseIterator#matchCost()}. */
 public class MatchCostQuery extends Query {
@@ -96,9 +97,9 @@ public class MatchCostQuery extends Query {
         }
         final TwoPhaseIterator tpi = scorer.twoPhaseIterator();
         if (tpi == null || tpi.matchCost() == matchCost) {
-          return new DefaultScorerSupplier(scorer); // needn't wrap/delegate
+          return new SolrDefaultScorerSupplier(scorer); // needn't 
wrap/delegate
         }
-        return new DefaultScorerSupplier(new Scorer() { // pass delegated 
weight
+        return new SolrDefaultScorerSupplier(new Scorer() { // pass delegated 
weight
 
           @Override
           public TwoPhaseIterator twoPhaseIterator() {
diff --git a/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java 
b/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
index 61ea5187179..0163ce9fb63 100644
--- a/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
@@ -36,6 +36,7 @@ import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.PointField;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -222,7 +223,7 @@ public class TermsQParserPlugin extends QParserPlugin {
           }
 
           final int docBase = context.docBase;
-          return new DefaultScorerSupplier(new ConstantScoreScorer(
+          return new SolrDefaultScorerSupplier(new ConstantScoreScorer(
               this.score(),
               scoreMode,
               new TwoPhaseIterator(segmentDocValues) {
diff --git a/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java 
b/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
index 86b9952349c..0611f4580c0 100644
--- a/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
@@ -30,6 +30,7 @@ import org.apache.solr.common.SolrException;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.join.MultiValueTermOrdinalCollector;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -92,7 +93,7 @@ public class TopLevelJoinQuery extends JoinQuery {
           }
 
           final int docBase = context.docBase;
-          return new DefaultScorerSupplier(new ConstantScoreScorer(
+          return new SolrDefaultScorerSupplier(new ConstantScoreScorer(
               this.score(),
               scoreMode,
               new TwoPhaseIterator(toApproximation) {
diff --git 
a/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
 
b/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
index ac00a5c0740..f71c6650412 100644
--- 
a/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
+++ 
b/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
@@ -24,6 +24,7 @@ import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.ValueSourceScorer;
 import org.apache.lucene.search.*;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /** RangeFilter over a ValueSource. */
 public class ValueSourceRangeFilter extends Query {
@@ -108,7 +109,7 @@ public class ValueSourceRangeFilter extends Query {
           valueSource
               .getValues(vsContext, context)
               .getRangeScorer(context, lowerVal, upperVal, includeLower, 
includeUpper);
-      return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, scorer.iterator()));
+      return new SolrDefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, scorer.iterator()));
     }
 
     @Override
diff --git 
a/solr/core/src/java/org/apache/solr/search/join/BlockJoinParentQParser.java 
b/solr/core/src/java/org/apache/solr/search/join/BlockJoinParentQParser.java
index 621da952848..7f5623061dd 100644
--- a/solr/core/src/java/org/apache/solr/search/join/BlockJoinParentQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/join/BlockJoinParentQParser.java
@@ -33,6 +33,7 @@ import org.apache.solr.search.ExtendedQueryBase;
 import org.apache.solr.search.QParser;
 import org.apache.solr.search.SolrCache;
 import org.apache.solr.search.SyntaxError;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 public class BlockJoinParentQParser extends FiltersQParser {
   /** implementation detail subject to change */
@@ -154,7 +155,7 @@ public class BlockJoinParentQParser extends FiltersQParser {
             return null;
           }
           DocIdSetIterator disi = new BitSetIterator(bitSet, 
bitSet.approximateCardinality());
-          return new DefaultScorerSupplier(new ConstantScoreScorer(boost, 
scoreMode, disi));
+          return new SolrDefaultScorerSupplier(new ConstantScoreScorer(boost, 
scoreMode, disi));
         }
 
         @Override
diff --git 
a/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java 
b/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
index c32b58bbc41..9c9a2beb08a 100644
--- 
a/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
+++ 
b/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
@@ -52,6 +52,7 @@ import org.apache.solr.search.BitDocSet;
 import org.apache.solr.search.DocSet;
 import org.apache.solr.search.DocSetUtil;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 public class CrossCollectionJoinQuery extends Query {
 
@@ -325,7 +326,7 @@ public class CrossCollectionJoinQuery extends Query {
         return null;
       }
       Scorer scorer = new ConstantScoreScorer(score(), scoreMode, 
readerSetIterator);
-      return new DefaultScorerSupplier(scorer);
+      return new SolrDefaultScorerSupplier(scorer);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java 
b/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
index c0f21584941..d839cb65ae1 100644
--- a/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
@@ -34,6 +34,7 @@ import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.BitDocSet;
 import org.apache.solr.search.DocSet;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /**
  * GraphQuery - search for nodes and traverse edges in an index.
@@ -272,7 +273,7 @@ public class GraphQuery extends Query {
       DocIdSetIterator disi = resultSet.iterator(context);
       // create a scrorer on the result set, if results from right query are 
empty, use empty
       // iterator.
-      return new DefaultScorerSupplier(new GraphScorer(this, disi == null ? 
DocIdSetIterator.empty() : disi, 1));
+      return new SolrDefaultScorerSupplier(new GraphScorer(this, disi == null 
? DocIdSetIterator.empty() : disi, 1));
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java 
b/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
index 73a5b2912f7..06e966b76e3 100644
--- a/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
@@ -29,6 +29,7 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.solr.common.util.Hash;
 import org.apache.solr.search.SolrCache;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 public class HashRangeQuery extends Query {
 
@@ -73,7 +74,7 @@ public class HashRangeQuery extends Query {
               }
             };
 
-        return new DefaultScorerSupplier(new ConstantScoreScorer(boost, 
scoreMode, iterator));
+        return new SolrDefaultScorerSupplier(new ConstantScoreScorer(boost, 
scoreMode, iterator));
       }
 
       private int[] getCache(LeafReaderContext context) throws IOException {
diff --git 
a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java 
b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
index fdefdfe0af6..8b3f838b264 100644
--- a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
+++ b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
@@ -24,6 +24,7 @@ import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.*;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.uninverting.UninvertingReader;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /**
  * Allows access to uninverted docvalues by delete-by-queries. this is used 
e.g. to implement
@@ -72,7 +73,7 @@ final class DeleteByQueryWrapper extends Query {
 
       @Override
       public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
-        return new 
DefaultScorerSupplier(inner.scorer(privateContext.getIndexReader().leaves().get(0)));
+        return new 
SolrDefaultScorerSupplier(inner.scorer(privateContext.getIndexReader().leaves().get(0)));
       }
 
       @Override
diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java 
b/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java
index f1eb1450779..30aa4d447bc 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java
@@ -67,6 +67,7 @@ import org.apache.solr.search.BitsFilteredPostingsEnum;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.RTimerTree;
 import org.apache.solr.util.RefCounted;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -568,7 +569,7 @@ public class SolrIndexSplitter {
               log.error("### INVALID DELS {}", dels.cardinality());
             }
           }
-          return new DefaultScorerSupplier(new ConstantScoreScorer(
+          return new SolrDefaultScorerSupplier(new ConstantScoreScorer(
               score(), scoreMode, new BitSetIterator(set, set.length())));
         }
 
diff --git 
a/solr/core/src/java/org/apache/solr/util/SolrDefaultScorerSupplier.java 
b/solr/core/src/java/org/apache/solr/util/SolrDefaultScorerSupplier.java
new file mode 100644
index 00000000000..b087ebef5aa
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/util/SolrDefaultScorerSupplier.java
@@ -0,0 +1,25 @@
+package org.apache.solr.util;
+
+import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.ScorerSupplier;
+
+import java.io.IOException;
+
+public class SolrDefaultScorerSupplier extends ScorerSupplier {
+        private final Scorer scorer;
+
+        public SolrDefaultScorerSupplier(Scorer scorer) {
+            this.scorer = scorer;
+        }
+
+        @Override
+        public Scorer get(long leadCost) throws IOException {
+            return scorer;
+        }
+
+        @Override
+        public long cost() {
+            return scorer.iterator().cost();
+        }
+    }
+
diff --git 
a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java 
b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
index fc9fff607a8..e585a35c01b 100644
--- 
a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
+++ 
b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
@@ -46,6 +46,7 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.uninverting.UninvertingReader.Type;
+import org.apache.solr.util.SolrDefaultScorerSupplier;
 
 /** random sorting tests with uninversion */
 public class TestFieldCacheSortRandom extends SolrTestCase {
@@ -301,7 +302,7 @@ public class TestFieldCacheSortRandom extends SolrTestCase {
             }
           }
 
-          return new DefaultScorerSupplier(new ConstantScoreScorer(
+          return new SolrDefaultScorerSupplier(new ConstantScoreScorer(
               score(), scoreMode, new BitSetIterator(bits, 
bits.approximateCardinality())));
         }
 

Reply via email to