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 f4b8b16d4f2 Moved setRewriteMethod() to constructor, replaced scorer() 
with scorerSupplier()
f4b8b16d4f2 is described below

commit f4b8b16d4f20dff980715aeaf531113dde13c8c2
Author: Ishan Chattopadhyaya <[email protected]>
AuthorDate: Thu Jan 16 02:04:21 2025 +0530

    Moved setRewriteMethod() to constructor, replaced scorer() with 
scorerSupplier()
---
 .../apache/solr/parser/SolrQueryParserBase.java    | 11 +++-----
 .../java/org/apache/solr/query/SolrRangeQuery.java | 28 +++++---------------
 .../solr/schema/AbstractSpatialFieldType.java      |  3 +--
 .../org/apache/solr/schema/DenseVectorField.java   |  4 +--
 .../src/java/org/apache/solr/schema/FieldType.java |  3 +--
 .../solr/search/GraphTermsQParserPlugin.java       | 22 ++++------------
 .../src/java/org/apache/solr/search/JoinQuery.java | 18 ++++---------
 .../org/apache/solr/search/MatchCostQuery.java     | 30 +++++-----------------
 .../apache/solr/search/SolrDocumentFetcher.java    |  5 ----
 .../org/apache/solr/search/TopLevelJoinQuery.java  | 20 ++++-----------
 .../search/function/ValueSourceRangeFilter.java    | 18 ++++---------
 .../solr/search/join/CrossCollectionJoinQuery.java | 15 +++--------
 .../org/apache/solr/search/join/GraphQuery.java    | 20 +++------------
 13 files changed, 49 insertions(+), 148 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java 
b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
index 563002d4698..e4e323c9604 100644
--- a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
+++ b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
@@ -56,6 +56,7 @@ import org.apache.lucene.util.QueryBuilder;
 import org.apache.lucene.util.automaton.Automata;
 import org.apache.lucene.util.automaton.Automaton;
 import org.apache.lucene.util.automaton.Operations;
+import org.apache.lucene.util.automaton.RegExp;
 import org.apache.solr.analysis.ReversedWildcardFilterFactory;
 import org.apache.solr.analysis.TokenizerChain;
 import org.apache.solr.common.SolrException;
@@ -598,10 +599,8 @@ public abstract class SolrQueryParserBase extends 
QueryBuilder {
    * @return new RegexpQuery instance
    */
   protected Query newRegexpQuery(Term regexp) {
-    RegexpQuery query = new RegexpQuery(regexp);
     SchemaField sf = schema.getField(regexp.field());
-    query.setRewriteMethod(sf.getType().getRewriteMethod(parser, sf));
-    return query;
+    return new RegexpQuery(regexp, RegExp.ALL, 0, 
RegexpQuery.DEFAULT_PROVIDER, Operations.DEFAULT_DETERMINIZE_WORK_LIMIT, 
sf.getType().getRewriteMethod(parser, sf));
   }
 
   @Override
@@ -681,10 +680,8 @@ public abstract class SolrQueryParserBase extends 
QueryBuilder {
    * @return new WildcardQuery instance
    */
   protected Query newWildcardQuery(Term t) {
-    WildcardQuery query = new WildcardQuery(t);
     SchemaField sf = schema.getField(t.field());
-    query.setRewriteMethod(sf.getType().getRewriteMethod(parser, sf));
-    return query;
+    return new WildcardQuery(t, Operations.DEFAULT_DETERMINIZE_WORK_LIMIT, 
sf.getType().getRewriteMethod(parser, sf));
   }
 
   /**
@@ -1293,7 +1290,7 @@ public abstract class SolrQueryParserBase extends 
QueryBuilder {
     if (factory != null) {
       Term term = new Term(field, termStr);
       // fsa representing the query
-      Automaton automaton = WildcardQuery.toAutomaton(term);
+      Automaton automaton = WildcardQuery.toAutomaton(term, 
Operations.DEFAULT_DETERMINIZE_WORK_LIMIT);
       // TODO: we should likely use the automaton to calculate shouldReverse, 
too.
       if (factory.shouldReverse(termStr)) {
         automaton = Operations.concatenate(automaton, 
Automata.makeChar(factory.getMarkerChar()));
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 c9c6af65ce2..0ca17780ee0 100644
--- a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
@@ -30,23 +30,7 @@ import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.TermStates;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.BulkScorer;
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Matches;
-import org.apache.lucene.search.MatchesUtils;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 import org.apache.lucene.util.AttributeSource;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.DocIdSetBuilder;
@@ -521,7 +505,7 @@ public final class SolrRangeQuery extends ExtendedQueryBase 
implements DocSetPro
       return segStates[context.ord] = new SegState(segSet);
     }
 
-    private Scorer scorer(DocIdSet set) throws IOException {
+    private ScorerSupplier scorerSupplier(DocIdSet set) throws IOException {
       if (set == null) {
         return null;
       }
@@ -529,7 +513,7 @@ public final class SolrRangeQuery extends ExtendedQueryBase 
implements DocSetPro
       if (disi == null) {
         return null;
       }
-      return new ConstantScoreScorer(this, score(), scoreMode, disi);
+      return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, disi));
     }
 
     @Override
@@ -547,12 +531,12 @@ public final class SolrRangeQuery extends 
ExtendedQueryBase implements DocSetPro
     }
 
     @Override
-    public Scorer scorer(LeafReaderContext context) throws IOException {
+    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       final SegState weightOrBitSet = getSegState(context);
       if (weightOrBitSet.weight != null) {
-        return weightOrBitSet.weight.scorer(context);
+        return new 
DefaultScorerSupplier(weightOrBitSet.weight.scorer(context));
       } else {
-        return scorer(weightOrBitSet.set);
+        return scorerSupplier(weightOrBitSet.set);
       }
     }
 
diff --git 
a/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java 
b/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java
index d92acef8233..06258f6306b 100644
--- a/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java
+++ b/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java
@@ -362,8 +362,7 @@ public abstract class AbstractSpatialFieldType<T extends 
SpatialStrategy> extend
 
   @Override
   protected Query getSpecializedExistenceQuery(QParser parser, SchemaField 
field) {
-    PrefixQuery query = new PrefixQuery(new Term(field.getName(), ""));
-    query.setRewriteMethod(field.getType().getRewriteMethod(parser, field));
+    PrefixQuery query = new PrefixQuery(new Term(field.getName(), ""), 
field.getType().getRewriteMethod(parser, field));
     return query;
   }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java 
b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
index 4d528361dd4..6dfbbc8ef9f 100644
--- a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
+++ b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
@@ -52,8 +52,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Provides a field type to support Lucene's {@link 
org.apache.lucene.document.KnnVectorField}. See
- * {@link org.apache.lucene.search.KnnVectorQuery} for more details. It 
supports a fixed cardinality
+ * Provides a field type to support Lucene's {@link 
org.apache.lucene.document.KnnFloatVectorField}. See
+ * {@link org.apache.lucene.search.KnnFloatVectorQuery} for more details. It 
supports a fixed cardinality
  * dimension for the vector and a fixed similarity function. The default 
similarity is
  * EUCLIDEAN_HNSW (L2). The default algorithm is HNSW. For Lucene 9.1 e.g. See 
{@link
  * org.apache.lucene.util.hnsw.HnswGraph} for more details about the 
implementation. <br>
diff --git a/solr/core/src/java/org/apache/solr/schema/FieldType.java 
b/solr/core/src/java/org/apache/solr/schema/FieldType.java
index cd13fbf9f3a..58eb4cc0698 100644
--- a/solr/core/src/java/org/apache/solr/schema/FieldType.java
+++ b/solr/core/src/java/org/apache/solr/schema/FieldType.java
@@ -482,8 +482,7 @@ public abstract class FieldType extends FieldProperties {
     if (termStr != null && termStr.isEmpty()) {
       return getExistenceQuery(parser, sf);
     }
-    PrefixQuery query = new PrefixQuery(new Term(sf.getName(), termStr));
-    query.setRewriteMethod(sf.getType().getRewriteMethod(parser, sf));
+    PrefixQuery query = new PrefixQuery(new Term(sf.getName(), termStr), 
sf.getType().getRewriteMethod(parser, sf));
     QueryUtils.ensurePrefixQueryObeysMinimumPrefixLength(parser, query, 
termStr);
     return query;
   }
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 3baae4e4027..48d4750f98e 100644
--- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
@@ -39,19 +39,7 @@ import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.TermStates;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.MatchAllDocsQuery;
-import org.apache.lucene.search.MatchNoDocsQuery;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 import org.apache.lucene.util.Accountable;
 import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.BytesRef;
@@ -253,7 +241,7 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
       return new ConstantScoreWeight(this, boost) {
 
         @Override
-        public Scorer scorer(LeafReaderContext context) throws IOException {
+        public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
           final LeafReader reader = context.reader();
           Terms terms = reader.terms(field);
           if (terms == null) {
@@ -274,7 +262,7 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
           }
           DocIdSet docIdSet = builder.build();
           DocIdSetIterator disi = docIdSet.iterator();
-          return disi == null ? null : new ConstantScoreScorer(this, score(), 
scoreMode, disi);
+          return disi == null ? null : new DefaultScorerSupplier(new 
ConstantScoreScorer(score(), scoreMode, disi));
         }
 
         @Override
@@ -593,7 +581,7 @@ abstract class PointSetQuery extends Query implements 
DocSetProducer, Accountabl
       DocSet docs;
 
       @Override
-      public Scorer scorer(LeafReaderContext context) throws IOException {
+      public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
         if (docs == null) {
           docs = getDocSet(searcher);
         }
@@ -603,7 +591,7 @@ abstract class PointSetQuery extends Query implements 
DocSetProducer, Accountabl
         if (readerSetIterator == null) {
           return null;
         }
-        return new ConstantScoreScorer(this, score(), scoreMode, 
readerSetIterator);
+        return new DefaultScorerSupplier(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 5cf99140f7d..6fb5f21d760 100644
--- a/solr/core/src/java/org/apache/solr/search/JoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/JoinQuery.java
@@ -29,15 +29,7 @@ import org.apache.lucene.index.MultiPostingsEnum;
 import org.apache.lucene.index.PostingsEnum;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.FixedBitSet;
@@ -80,9 +72,9 @@ class JoinQuery extends Query {
   }
 
   @Override
-  public Query rewrite(IndexReader reader) throws IOException {
+  public Query rewrite(IndexSearcher searcher) throws IOException {
     // don't rewrite the subQuery
-    return super.rewrite(reader);
+    return super.rewrite(searcher);
   }
 
   @Override
@@ -154,7 +146,7 @@ class JoinQuery extends Query {
     DocSet resultSet;
 
     @Override
-    public Scorer scorer(LeafReaderContext context) throws IOException {
+    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       if (resultSet == null) {
         boolean debug = rb != null && rb.isDebug();
         RTimer timer = (debug ? new RTimer() : null);
@@ -188,7 +180,7 @@ class JoinQuery extends Query {
       if (readerSetIterator == null) {
         return null;
       }
-      return new ConstantScoreScorer(this, score(), scoreMode, 
readerSetIterator);
+      return new DefaultScorerSupplier(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 d1a4656a88c..165ec18167b 100644
--- a/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
@@ -21,17 +21,7 @@ import java.io.IOException;
 import java.util.Objects;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.search.BulkScorer;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.Explanation;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Matches;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.TwoPhaseIterator;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 
 /** Wraps a {@link Query} to customize the {@link 
TwoPhaseIterator#matchCost()}. */
 public class MatchCostQuery extends Query {
@@ -66,8 +56,8 @@ public class MatchCostQuery extends Query {
   }
 
   @Override
-  public Query rewrite(IndexReader reader) throws IOException {
-    final Query rewrite = delegate.rewrite(reader);
+  public Query rewrite(IndexSearcher searcher) throws IOException {
+    final Query rewrite = delegate.rewrite(searcher);
     if (delegate.equals(rewrite)) {
       return this; // unchanged
     }
@@ -99,16 +89,16 @@ public class MatchCostQuery extends Query {
       // scorer() so that we can wrap TPI
 
       @Override
-      public Scorer scorer(LeafReaderContext context) throws IOException {
+      public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
         final Scorer scorer = weight.scorer(context);
         if (scorer == null) {
           return null;
         }
         final TwoPhaseIterator tpi = scorer.twoPhaseIterator();
         if (tpi == null || tpi.matchCost() == matchCost) {
-          return scorer; // needn't wrap/delegate
+          return new DefaultScorerSupplier(scorer); // needn't wrap/delegate
         }
-        return new Scorer(weight) { // pass delegated weight
+        return new DefaultScorerSupplier(new Scorer() { // pass delegated 
weight
 
           @Override
           public TwoPhaseIterator twoPhaseIterator() {
@@ -144,13 +134,7 @@ public class MatchCostQuery extends Query {
           public int docID() {
             return scorer.docID();
           }
-        };
-      }
-
-      // delegate because thus there's no need to care about TPI matchCost if 
called
-      @Override
-      public BulkScorer bulkScorer(LeafReaderContext context) throws 
IOException {
-        return weight.bulkScorer(context);
+        });
       }
     };
   }
diff --git a/solr/core/src/java/org/apache/solr/search/SolrDocumentFetcher.java 
b/solr/core/src/java/org/apache/solr/search/SolrDocumentFetcher.java
index 56d12109982..591197d8381 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrDocumentFetcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrDocumentFetcher.java
@@ -275,9 +275,6 @@ public class SolrDocumentFetcher {
     }
   }
 
-  /**
-   * @see SolrIndexSearcher#doc(int)
-   */
   public Document doc(int docId) throws IOException {
     return doc(docId, (Set<String>) null);
   }
@@ -287,8 +284,6 @@ public class SolrDocumentFetcher {
    *
    * <p><b>NOTE</b>: the document will have all fields accessible, but if a 
field filter is
    * provided, only the provided fields will be loaded (the remainder will be 
available lazily).
-   *
-   * @see SolrIndexSearcher#doc(int, Set)
    */
   public Document doc(int i, Set<String> fields) throws IOException {
     Document d;
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 ce05a02eb95..86b9952349c 100644
--- a/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
@@ -23,16 +23,7 @@ import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.SortedSetDocValues;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.TwoPhaseIterator;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LongBitSet;
 import org.apache.solr.common.SolrException;
@@ -87,7 +78,7 @@ public class TopLevelJoinQuery extends JoinQuery {
       final boolean toMultivalued = 
toSearcher.getSchema().getFieldOrNull(toField).multiValued();
       return new ConstantScoreWeight(this, boost) {
         @Override
-        public Scorer scorer(LeafReaderContext context) throws IOException {
+        public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
           if (toBitsetBounds.lower == BitsetBounds.NO_MATCHES) {
             return null;
           }
@@ -101,8 +92,7 @@ public class TopLevelJoinQuery extends JoinQuery {
           }
 
           final int docBase = context.docBase;
-          return new ConstantScoreScorer(
-              this,
+          return new DefaultScorerSupplier(new ConstantScoreScorer(
               this.score(),
               scoreMode,
               new TwoPhaseIterator(toApproximation) {
@@ -126,7 +116,7 @@ public class TopLevelJoinQuery extends JoinQuery {
                 public float matchCost() {
                   return 10.0F;
                 }
-              });
+              }));
         }
 
         @Override
@@ -142,7 +132,7 @@ public class TopLevelJoinQuery extends JoinQuery {
   private Weight createNoMatchesWeight(float boost) {
     return new ConstantScoreWeight(this, boost) {
       @Override
-      public Scorer scorer(LeafReaderContext context) throws IOException {
+      public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
         return null;
       }
 
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 0deb5744e8d..ac00a5c0740 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
@@ -23,15 +23,7 @@ import org.apache.lucene.index.LeafReaderContext;
 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.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.Explanation;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 
 /** RangeFilter over a ValueSource. */
 public class ValueSourceRangeFilter extends Query {
@@ -99,7 +91,7 @@ public class ValueSourceRangeFilter extends Query {
       FunctionValues functionValues = valueSource.getValues(vsContext, 
context);
       ValueSourceScorer scorer =
           functionValues.getRangeScorer(
-              this, context, lowerVal, upperVal, includeLower, includeUpper);
+              context, lowerVal, upperVal, includeLower, includeUpper);
       if (scorer.matches(doc)) {
         scorer.iterator().advance(doc);
         return Explanation.match(
@@ -111,12 +103,12 @@ public class ValueSourceRangeFilter extends Query {
     }
 
     @Override
-    public Scorer scorer(LeafReaderContext context) throws IOException {
+    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       ValueSourceScorer scorer =
           valueSource
               .getValues(vsContext, context)
-              .getRangeScorer(this, context, lowerVal, upperVal, includeLower, 
includeUpper);
-      return new ConstantScoreScorer(this, score(), scoreMode, 
scorer.iterator());
+              .getRangeScorer(context, lowerVal, upperVal, includeLower, 
includeUpper);
+      return new DefaultScorerSupplier(new ConstantScoreScorer(score(), 
scoreMode, scorer.iterator()));
     }
 
     @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 b0b396cf6cf..c32b58bbc41 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
@@ -26,15 +26,7 @@ import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.PostingsEnum;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.Weight;
+import org.apache.lucene.search.*;
 import org.apache.lucene.util.BytesRefBuilder;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.solr.client.solrj.io.SolrClientCache;
@@ -323,7 +315,7 @@ public class CrossCollectionJoinQuery extends Query {
     }
 
     @Override
-    public Scorer scorer(LeafReaderContext context) throws IOException {
+    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       if (docs == null) {
         docs = getDocSet();
       }
@@ -332,7 +324,8 @@ public class CrossCollectionJoinQuery extends Query {
       if (readerSetIterator == null) {
         return null;
       }
-      return new ConstantScoreScorer(this, score(), scoreMode, 
readerSetIterator);
+      Scorer scorer = new ConstantScoreScorer(score(), scoreMode, 
readerSetIterator);
+      return new DefaultScorerSupplier(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 77eb886e41b..c0f21584941 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
@@ -23,20 +23,8 @@ import java.util.Objects;
 import java.util.TreeSet;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.Explanation;
-import org.apache.lucene.search.FieldExistsQuery;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryVisitor;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.Weight;
-import org.apache.lucene.search.WildcardQuery;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BytesRefHash;
 import org.apache.lucene.util.FixedBitSet;
@@ -277,14 +265,14 @@ public class GraphQuery extends Query {
     }
 
     @Override
-    public Scorer scorer(LeafReaderContext context) throws IOException {
+    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws 
IOException {
       if (resultSet == null) {
         resultSet = getDocSet();
       }
       DocIdSetIterator disi = resultSet.iterator(context);
       // create a scrorer on the result set, if results from right query are 
empty, use empty
       // iterator.
-      return new GraphScorer(this, disi == null ? DocIdSetIterator.empty() : 
disi, 1);
+      return new DefaultScorerSupplier(new GraphScorer(this, disi == null ? 
DocIdSetIterator.empty() : disi, 1));
     }
 
     @Override
@@ -300,7 +288,7 @@ public class GraphQuery extends Query {
 
     // graph query scorer constructor with iterator
     public GraphScorer(Weight w, DocIdSetIterator iter, float score) throws 
IOException {
-      super(w);
+      super();
       this.iter = iter == null ? DocIdSet.EMPTY.iterator() : iter;
       this.score = score;
     }

Reply via email to