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 d4770a5c0c7 Changed rewrite method signature, added DV skip to
FieldInfo constructor, more scorerSupplier() fixes
d4770a5c0c7 is described below
commit d4770a5c0c76fb42693815fc2d09b004b3296cad
Author: Ishan Chattopadhyaya <[email protected]>
AuthorDate: Thu Jan 16 02:38:30 2025 +0530
Changed rewrite method signature, added DV skip to FieldInfo constructor,
more scorerSupplier() fixes
---
.../java/org/apache/solr/query/FilterQuery.java | 4 +--
.../solr/search/CollapsingQParserPlugin.java | 14 ++-------
.../java/org/apache/solr/search/DocSetQuery.java | 14 ++-------
.../solr/search/NumericHidingLeafReader.java | 12 ++------
.../org/apache/solr/search/TermsQParserPlugin.java | 35 +++++-----------------
.../java/org/apache/solr/search/WrappedQuery.java | 4 +--
.../solr/search/join/ScoreJoinQParserPlugin.java | 4 +--
.../apache/solr/uninverting/UninvertingReader.java | 14 ++-------
.../apache/solr/update/DeleteByQueryWrapper.java | 18 ++++-------
9 files changed, 30 insertions(+), 89 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/query/FilterQuery.java
b/solr/core/src/java/org/apache/solr/query/FilterQuery.java
index 8af5a5a51ee..ec9601eec91 100644
--- a/solr/core/src/java/org/apache/solr/query/FilterQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/FilterQuery.java
@@ -104,8 +104,8 @@ public class FilterQuery extends ExtendedQueryBase {
}
@Override
- public Query rewrite(IndexReader reader) throws IOException {
- Query newQ = q.rewrite(reader);
+ public Query rewrite(IndexSearcher searcher) throws IOException {
+ Query newQ = q.rewrite(searcher);
if (!newQ.equals(q)) {
return new FilterQuery(newQ);
} else {
diff --git
a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
index 67a8a3ea1fa..05b50bba2a4 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -36,18 +36,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.lucene.codecs.DocValuesProducer;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.index.DocValuesType;
-import org.apache.lucene.index.EmptyDocValuesProducer;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FilterLeafReader;
-import org.apache.lucene.index.LeafReader;
-import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.index.MultiDocValues;
-import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.OrdinalMap;
-import org.apache.lucene.index.SortedDocValues;
+import org.apache.lucene.index.*;
import org.apache.lucene.queries.function.FunctionQuery;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
@@ -527,6 +516,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
fieldInfo.hasPayloads(),
fieldInfo.getIndexOptions(),
DocValuesType.NONE,
+ DocValuesSkipIndexType.NONE,
fieldInfo.getDocValuesGen(),
fieldInfo.attributes(),
fieldInfo.getPointDimensionCount(),
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 d4122b211f0..623b2fc01a0 100644
--- a/solr/core/src/java/org/apache/solr/search/DocSetQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/DocSetQuery.java
@@ -19,15 +19,7 @@ package org.apache.solr.search;
import java.io.IOException;
import java.util.Objects;
import org.apache.lucene.index.LeafReaderContext;
-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.*;
/**
* A Query based on a {@link DocSet}. The un-boosted score is always 1.
@@ -80,12 +72,12 @@ class DocSetQuery extends Query implements DocSetProducer {
throws IOException {
return new ConstantScoreWeight(this, boost) {
@Override
- public Scorer scorer(LeafReaderContext context) {
+ public ScorerSupplier scorerSupplier(LeafReaderContext context) {
DocIdSetIterator disi = docSet.iterator(context);
if (disi == null) {
return null;
}
- return new ConstantScoreScorer(this, score(), scoreMode, disi);
+ return new DefaultScorerSupplier(new ConstantScoreScorer(score(),
scoreMode, disi));
}
@Override
diff --git
a/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java
b/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java
index d0a72915fa3..82fd8ca2fda 100644
--- a/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java
+++ b/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java
@@ -19,15 +19,8 @@ package org.apache.solr.search;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import org.apache.lucene.index.BinaryDocValues;
-import org.apache.lucene.index.DocValuesType;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FilterLeafReader;
-import org.apache.lucene.index.LeafReader;
-import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.index.SortedSetDocValues;
+
+import org.apache.lucene.index.*;
import org.apache.solr.uninverting.UninvertingReader;
/**
@@ -68,6 +61,7 @@ public class NumericHidingLeafReader extends FilterLeafReader
{
fi.hasPayloads(),
fi.getIndexOptions(),
DocValuesType.NONE,
+ DocValuesSkipIndexType.NONE,
-1,
Collections.emptyMap(),
fi.getPointDimensionCount(),
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 78297666f27..61ea5187179 100644
--- a/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
@@ -27,26 +27,8 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.PrefixCodedTerms;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.AutomatonQuery;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.ConstantScoreScorer;
-import org.apache.lucene.search.ConstantScoreWeight;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.MatchNoDocsQuery;
-import org.apache.lucene.search.MultiTermQuery;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.TermInSetQuery;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.TwoPhaseIterator;
-import org.apache.lucene.search.Weight;
-import org.apache.lucene.util.ArrayUtil;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.BytesRefBuilder;
-import org.apache.lucene.util.LongBitSet;
+import org.apache.lucene.search.*;
+import org.apache.lucene.util.*;
import org.apache.lucene.util.automaton.Automata;
import org.apache.lucene.util.automaton.Automaton;
import org.apache.solr.common.SolrException;
@@ -82,7 +64,7 @@ public class TermsQParserPlugin extends QParserPlugin {
termsFilter {
@Override
Query makeFilter(String fname, BytesRef[] bytesRefs) {
- return new TermInSetQuery(fname, bytesRefs); // constant scores
+ return new TermInSetQuery(fname, Arrays.asList(bytesRefs)); //
constant scores
}
},
booleanQuery {
@@ -198,7 +180,7 @@ public class TermsQParserPlugin extends QParserPlugin {
private boolean matchesAtLeastOneTerm = false;
public TopLevelDocValuesTermsQuery(String field, BytesRef... terms) {
- super(MultiTermQuery.DOC_VALUES_REWRITE, field, terms);
+ super(MultiTermQuery.DOC_VALUES_REWRITE, field, Arrays.asList(terms));
this.fieldName = field;
}
@@ -215,7 +197,7 @@ public class TermsQParserPlugin extends QParserPlugin {
topLevelDocValues =
DocValues.getSortedSet(((SolrIndexSearcher)
searcher).getSlowAtomicReader(), fieldName);
topLevelTermOrdinals = new LongBitSet(topLevelDocValues.getValueCount());
- PrefixCodedTerms.TermIterator iterator = getTermData().iterator();
+ BytesRefIterator iterator = getBytesRefIterator();
long lastTermOrdFound = 0;
for (BytesRef term = iterator.next(); term != null; term =
iterator.next()) {
@@ -229,7 +211,7 @@ public class TermsQParserPlugin extends QParserPlugin {
return new ConstantScoreWeight(this, boost) {
@Override
- public Scorer scorer(LeafReaderContext context) throws IOException {
+ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws
IOException {
if (!matchesAtLeastOneTerm) {
return null;
}
@@ -240,8 +222,7 @@ public class TermsQParserPlugin extends QParserPlugin {
}
final int docBase = context.docBase;
- return new ConstantScoreScorer(
- this,
+ return new DefaultScorerSupplier(new ConstantScoreScorer(
this.score(),
scoreMode,
new TwoPhaseIterator(segmentDocValues) {
@@ -263,7 +244,7 @@ public class TermsQParserPlugin extends QParserPlugin {
public float matchCost() {
return 10.0F;
}
- });
+ }));
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
b/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
index 812fec3c36b..58c1f420dc5 100644
--- a/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
@@ -47,9 +47,9 @@ public final class WrappedQuery extends ExtendedQueryBase {
}
@Override
- public Query rewrite(IndexReader reader) throws IOException {
+ public Query rewrite(IndexSearcher searcher) throws IOException {
// currently no need to continue wrapping at this point.
- return q.rewrite(reader);
+ return q.rewrite(searcher);
}
@Override
diff --git
a/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
index d61903440af..b8f3de40f23 100644
--- a/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
@@ -138,7 +138,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
fromCore.close();
fromHolder.decref();
}
- return
joinQuery.rewrite(searcher.getIndexReader()).createWeight(searcher, scoreMode,
boost);
+ return joinQuery.rewrite(searcher).createWeight(searcher, scoreMode,
boost);
}
@Override
@@ -192,7 +192,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
final Query jq =
JoinUtil.createJoinQuery(
fromField, true, toField, fromQuery,
info.getReq().getSearcher(), this.scoreMode);
- return jq.rewrite(searcher.getIndexReader()).createWeight(searcher,
scoreMode, boost);
+ return jq.rewrite(searcher).createWeight(searcher, scoreMode, boost);
}
@Override
diff --git
a/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java
b/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java
index 55eb904cea0..972d6b16044 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java
@@ -25,18 +25,7 @@ import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.SortedSetDocValuesField;
import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.BinaryDocValues;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.DocValuesType;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FilterDirectoryReader;
-import org.apache.lucene.index.FilterLeafReader;
-import org.apache.lucene.index.IndexOptions;
-import org.apache.lucene.index.LeafReader;
-import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.index.SortedSetDocValues;
+import org.apache.lucene.index.*;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.solr.uninverting.FieldCache.CacheEntry;
@@ -290,6 +279,7 @@ public class UninvertingReader extends FilterLeafReader {
fi.hasPayloads(),
fi.getIndexOptions(),
type,
+ DocValuesSkipIndexType.NONE,
fi.getDocValuesGen(),
fi.attributes(),
fi.getPointDimensionCount(),
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 ce6489f9083..fdefdfe0af6 100644
--- a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
+++ b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
@@ -21,13 +21,7 @@ import java.util.Objects;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.LeafReaderContext;
-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.*;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.uninverting.UninvertingReader;
@@ -54,12 +48,12 @@ final class DeleteByQueryWrapper extends Query {
// we try to be well-behaved, but we are not (and IW's applyQueryDeletes
isn't much better...)
@Override
- public Query rewrite(IndexReader reader) throws IOException {
- Query rewritten = in.rewrite(reader);
+ public Query rewrite(IndexSearcher searcher) throws IOException {
+ Query rewritten = in.rewrite(searcher);
if (!rewritten.equals(in)) {
return new DeleteByQueryWrapper(rewritten, schema);
} else {
- return super.rewrite(reader);
+ return super.rewrite(searcher);
}
}
@@ -77,8 +71,8 @@ final class DeleteByQueryWrapper extends Query {
}
@Override
- public Scorer scorer(LeafReaderContext context) throws IOException {
- return inner.scorer(privateContext.getIndexReader().leaves().get(0));
+ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws
IOException {
+ return new
DefaultScorerSupplier(inner.scorer(privateContext.getIndexReader().leaves().get(0)));
}
@Override