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())));
}