You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2018/09/04 10:02:38 UTC
[2/2] lucene-solr:master: LUCENE-6228: Add Scorable class and make
LeafCollector.setScorer() take Scorable
LUCENE-6228: Add Scorable class and make LeafCollector.setScorer() take Scorable
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/910a0231
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/910a0231
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/910a0231
Branch: refs/heads/master
Commit: 910a0231f6fc668426056e31d43e293248ff5ce1
Parents: 1acfca5
Author: Alan Woodward <ro...@apache.org>
Authored: Mon Sep 3 16:46:59 2018 +0100
Committer: Alan Woodward <ro...@apache.org>
Committed: Tue Sep 4 11:01:44 2018 +0100
----------------------------------------------------------------------
lucene/CHANGES.txt | 4 +
lucene/MIGRATE.txt | 7 ++
.../document/LatLonPointDistanceComparator.java | 4 +-
.../search/BlockMaxConjunctionScorer.java | 6 +-
.../org/apache/lucene/search/BooleanScorer.java | 4 +-
.../org/apache/lucene/search/BooleanWeight.java | 2 +-
.../apache/lucene/search/CachingCollector.java | 4 +-
.../apache/lucene/search/ConjunctionScorer.java | 6 +-
.../lucene/search/ConstantScoreQuery.java | 14 ++--
.../apache/lucene/search/DisjunctionScorer.java | 6 +-
.../lucene/search/DoubleValuesSource.java | 6 +-
.../org/apache/lucene/search/FakeScorer.java | 2 +-
.../apache/lucene/search/FieldComparator.java | 10 +--
.../lucene/search/FilterLeafCollector.java | 2 +-
.../apache/lucene/search/FilterScorable.java | 58 +++++++++++++
.../org/apache/lucene/search/LRUQueryCache.java | 4 +-
.../org/apache/lucene/search/LeafCollector.java | 2 +-
.../lucene/search/LeafFieldComparator.java | 2 +-
.../apache/lucene/search/LongValuesSource.java | 2 +-
.../lucene/search/MinShouldMatchSumScorer.java | 6 +-
.../apache/lucene/search/MultiCollector.java | 9 +-
.../lucene/search/MultiCollectorManager.java | 6 +-
.../lucene/search/MultiLeafFieldComparator.java | 2 +-
.../search/PositiveScoresOnlyCollector.java | 4 +-
.../org/apache/lucene/search/ReqExclScorer.java | 4 +-
.../apache/lucene/search/ReqOptSumScorer.java | 8 +-
.../java/org/apache/lucene/search/Scorable.java | 86 ++++++++++++++++++++
.../search/ScoreCachingWrappingScorer.java | 24 +++---
.../java/org/apache/lucene/search/Scorer.java | 70 +---------------
.../apache/lucene/search/SimpleCollector.java | 2 +-
.../lucene/search/SimpleFieldComparator.java | 2 +-
.../apache/lucene/search/TopFieldCollector.java | 4 +-
.../lucene/search/TopScoreDocCollector.java | 6 +-
.../org/apache/lucene/search/WANDScorer.java | 6 +-
.../org/apache/lucene/index/TestOmitTf.java | 18 ++--
.../apache/lucene/search/JustCompileSearch.java | 2 +-
.../lucene/search/MultiCollectorTest.java | 8 +-
.../org/apache/lucene/search/TestBooleanOr.java | 2 +-
.../apache/lucene/search/TestBooleanQuery.java | 4 +-
.../search/TestBooleanQueryVisitSubscorers.java | 19 ++---
.../apache/lucene/search/TestConjunctions.java | 8 +-
.../lucene/search/TestConstantScoreQuery.java | 26 +++++-
.../lucene/search/TestDoubleValuesSource.java | 6 +-
.../lucene/search/TestElevationComparator.java | 2 +-
.../lucene/search/TestMultiCollector.java | 6 +-
.../lucene/search/TestReqExclBulkScorer.java | 4 +-
.../search/TestScoreCachingWrappingScorer.java | 4 +-
.../apache/lucene/search/TestSimilarity.java | 16 ++--
.../lucene/search/TestSloppyPhraseQuery.java | 14 +---
.../lucene/search/TestSubScorerFreqs.java | 22 ++---
.../apache/lucene/search/TestTermScorer.java | 4 +-
.../search/TestTimeLimitingCollector.java | 2 +-
.../lucene/search/TestTopDocsCollector.java | 2 +-
.../lucene/search/TestTopFieldCollector.java | 19 +----
.../lucene/facet/DrillSidewaysScorer.java | 4 +-
.../apache/lucene/facet/FacetsCollector.java | 6 +-
.../facet/AssertingSubDocsAtOnceCollector.java | 11 ++-
.../search/grouping/AllGroupHeadsCollector.java | 24 +++---
.../search/grouping/AllGroupsCollector.java | 4 +-
.../search/grouping/BlockGroupingCollector.java | 5 +-
.../grouping/FirstPassGroupingCollector.java | 4 +-
.../search/grouping/GroupFacetCollector.java | 4 +-
.../lucene/search/grouping/GroupReducer.java | 4 +-
.../grouping/SecondPassGroupingCollector.java | 4 +-
.../search/grouping/TopGroupsCollector.java | 6 +-
.../search/highlight/HighlighterPhraseTest.java | 5 +-
.../search/join/GlobalOrdinalsCollector.java | 6 +-
.../join/GlobalOrdinalsWithScoreCollector.java | 14 ++--
.../org/apache/lucene/search/join/JoinUtil.java | 10 +--
.../search/join/TermsWithScoreCollector.java | 6 +-
.../search/join/ToChildBlockJoinQuery.java | 4 +-
.../search/join/ToParentBlockJoinQuery.java | 4 +-
.../apache/lucene/search/join/TestJoinUtil.java | 10 +--
.../apache/lucene/index/memory/MemoryIndex.java | 6 +-
.../search/DiversifiedTopDocsCollector.java | 4 +-
.../lucene/search/DocValuesStatsCollector.java | 4 +-
.../surround/query/BooleanQueryTst.java | 10 +--
.../apache/lucene/search/CoveringScorer.java | 6 +-
.../spatial3d/Geo3DPointDistanceComparator.java | 4 +-
.../Geo3DPointOutsideDistanceComparator.java | 4 +-
.../document/TopSuggestDocsCollector.java | 2 +-
.../lucene/search/AssertingBulkScorer.java | 4 +-
.../lucene/search/AssertingCollector.java | 11 +--
.../lucene/search/AssertingIndexSearcher.java | 2 +-
.../lucene/search/AssertingLeafCollector.java | 13 +--
.../apache/lucene/search/AssertingScorable.java | 64 +++++++++++++++
.../apache/lucene/search/AssertingScorer.java | 4 +-
.../lucene/search/BulkScorerWrapperScorer.java | 4 +-
.../org/apache/lucene/search/CheckHits.java | 6 +-
.../org/apache/lucene/search/QueryUtils.java | 14 ++--
.../org/apache/solr/ltr/LTRScoringQuery.java | 14 ++--
.../solr/ltr/TestLTRReRankingPipeline.java | 6 +-
.../solr/handler/component/ExpandComponent.java | 6 +-
.../solr/handler/component/QueryComponent.java | 2 +-
.../solr/search/CollapsingQParserPlugin.java | 11 +--
.../apache/solr/search/DelegatingCollector.java | 8 +-
.../org/apache/solr/search/DocSetCollector.java | 4 +-
.../apache/solr/search/ExportQParserPlugin.java | 4 +-
.../apache/solr/search/HashQParserPlugin.java | 7 +-
.../apache/solr/search/MaxScoreCollector.java | 6 +-
.../apache/solr/search/SolrIndexSearcher.java | 8 +-
.../apache/solr/search/TestRankQueryPlugin.java | 9 +-
102 files changed, 542 insertions(+), 412 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index c2a9e2e..f95ce90 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -69,6 +69,10 @@ API Changes
need to be set on top hits via TopFieldCollector#populateScores instead.
(Adrien Grand)
+* LUCENE-6228: A new Scorable abstract class has been added, containing only those
+ methods from Scorer that should be called from Collectors. LeafCollector.setScorer()
+ now takes a Scorable rather than a Scorer. (Alan Woodward, Adrien Grand)
+
Changes in Runtime Behavior
* LUCENE-8333: Switch MoreLikeThis.setMaxDocFreqPct to use maxDoc instead of
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/MIGRATE.txt
----------------------------------------------------------------------
diff --git a/lucene/MIGRATE.txt b/lucene/MIGRATE.txt
index 01e0baa..97ceb77 100644
--- a/lucene/MIGRATE.txt
+++ b/lucene/MIGRATE.txt
@@ -106,3 +106,10 @@ This RAM-based directory implementation is an old piece of code that uses ineffi
thread synchronization primitives and can be confused as "faster" than the NIO-based
MMapDirectory. It is deprecated and scheduled for removal in future versions of
Lucene. (LUCENE-8467, LUCENE-8438)
+
+## LeafCollector.setScorer() now takes a Scorable rather than a Scorer ##
+
+Scorer has a number of methods that should never be called from Collectors, for example
+those that advance the underlying iterators. To hide these, LeafCollector.setScorer()
+now takes a Scorable, an abstract class that Scorers can extend, with methods
+docId() and score() (LUCENE-6228)
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/document/LatLonPointDistanceComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/document/LatLonPointDistanceComparator.java b/lucene/core/src/java/org/apache/lucene/document/LatLonPointDistanceComparator.java
index 40e8dee..7a2c5b0 100644
--- a/lucene/core/src/java/org/apache/lucene/document/LatLonPointDistanceComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/document/LatLonPointDistanceComparator.java
@@ -26,7 +26,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.SortedNumericDocValues;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.LeafFieldComparator;
-import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.Scorable;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.lucene.util.SloppyMath;
@@ -78,7 +78,7 @@ class LatLonPointDistanceComparator extends FieldComparator<Double> implements L
}
@Override
- public void setScorer(Scorer scorer) {}
+ public void setScorer(Scorable scorer) {}
@Override
public int compare(int slot1, int slot2) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
index b49c800..fa3743f 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
@@ -250,10 +250,10 @@ final class BlockMaxConjunctionScorer extends Scorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
- ArrayList<ChildScorer> children = new ArrayList<>();
+ public Collection<ChildScorable> getChildren() {
+ ArrayList<ChildScorable> children = new ArrayList<>();
for (Scorer scorer : scorers) {
- children.add(new ChildScorer(scorer, "MUST"));
+ children.add(new ChildScorable(scorer, "MUST"));
}
return children;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java b/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
index 0e075b4..a66305b 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
@@ -124,10 +124,10 @@ final class BooleanScorer extends BulkScorer {
final long cost;
final class OrCollector implements LeafCollector {
- Scorer scorer;
+ Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java b/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
index e0ea044..d58b246 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
@@ -163,7 +163,7 @@ final class BooleanWeight extends Weight {
FakeScorer fake = new FakeScorer();
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
collector.setScorer(fake);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/CachingCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/CachingCollector.java b/lucene/core/src/java/org/apache/lucene/search/CachingCollector.java
index 6681c59..f2da14b 100644
--- a/lucene/core/src/java/org/apache/lucene/search/CachingCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/CachingCollector.java
@@ -256,7 +256,7 @@ public abstract class CachingCollector extends FilterCollector {
private class ScoreCachingLeafCollector extends NoScoreCachingLeafCollector {
- Scorer scorer;
+ Scorable scorer;
float[] scores;
ScoreCachingLeafCollector(LeafCollector in, int maxDocsToCache) {
@@ -265,7 +265,7 @@ public abstract class CachingCollector extends FilterCollector {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
super.setScorer(scorer);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/ConjunctionScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/ConjunctionScorer.java b/lucene/core/src/java/org/apache/lucene/search/ConjunctionScorer.java
index 5fe5c75..eafc57f 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ConjunctionScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ConjunctionScorer.java
@@ -91,10 +91,10 @@ class ConjunctionScorer extends Scorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
- ArrayList<ChildScorer> children = new ArrayList<>();
+ public Collection<ChildScorable> getChildren() {
+ ArrayList<ChildScorable> children = new ArrayList<>();
for (Scorer scorer : required) {
- children.add(new ChildScorer(scorer, "MUST"));
+ children.add(new ChildScorable(scorer, "MUST"));
}
return children;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java b/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
index d696c21..5c9ed19 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
@@ -87,15 +87,11 @@ public final class ConstantScoreQuery extends Query {
private LeafCollector wrapCollector(LeafCollector collector) {
return new FilterLeafCollector(collector) {
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
// we must wrap again here, but using the scorer passed in as parameter:
- in.setScorer(new FilterScorer(scorer) {
+ in.setScorer(new FilterScorable(scorer) {
@Override
- public float score() throws IOException {
- return theScore;
- }
- @Override
- public float getMaxScore(int upTo) throws IOException {
+ public float score() {
return theScore;
}
});
@@ -145,8 +141,8 @@ public final class ConstantScoreQuery extends Query {
return score;
}
@Override
- public Collection<ChildScorer> getChildren() {
- return Collections.singleton(new ChildScorer(innerScorer, "constant"));
+ public Collection<ChildScorable> getChildren() {
+ return Collections.singleton(new ChildScorable(innerScorer, "constant"));
}
};
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/DisjunctionScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/DisjunctionScorer.java b/lucene/core/src/java/org/apache/lucene/search/DisjunctionScorer.java
index 249521e..b1f2fd2 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DisjunctionScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DisjunctionScorer.java
@@ -198,10 +198,10 @@ abstract class DisjunctionScorer extends Scorer {
protected abstract float score(DisiWrapper topList) throws IOException;
@Override
- public final Collection<ChildScorer> getChildren() throws IOException {
- ArrayList<ChildScorer> children = new ArrayList<>();
+ public final Collection<ChildScorable> getChildren() throws IOException {
+ ArrayList<ChildScorable> children = new ArrayList<>();
for (DisiWrapper scorer = getSubMatches(); scorer != null; scorer = scorer.next) {
- children.add(new ChildScorer(scorer.scorer, "SHOULD"));
+ children.add(new ChildScorable(scorer.scorer, "SHOULD"));
}
return children;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java b/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
index 3938d3f..929e45f 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
@@ -41,7 +41,7 @@ import org.apache.lucene.index.NumericDocValues;
* special long-to-double encoding is required.
*
* Scores may be used as a source for value calculations by wrapping a {@link Scorer} using
- * {@link #fromScorer(Scorer)} and passing the resulting DoubleValues to {@link #getValues(LeafReaderContext, DoubleValues)}.
+ * {@link #fromScorer(Scorable)} and passing the resulting DoubleValues to {@link #getValues(LeafReaderContext, DoubleValues)}.
* The scores can then be accessed using the {@link #SCORES} DoubleValuesSource.
*/
public abstract class DoubleValuesSource implements SegmentCacheable {
@@ -331,7 +331,7 @@ public abstract class DoubleValuesSource implements SegmentCacheable {
/**
* Returns a DoubleValues instance that wraps scores returned by a Scorer
*/
- public static DoubleValues fromScorer(Scorer scorer) {
+ public static DoubleValues fromScorer(Scorable scorer) {
return new DoubleValues() {
@Override
public double doubleValue() throws IOException {
@@ -471,7 +471,7 @@ public abstract class DoubleValuesSource implements SegmentCacheable {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
holder.values = producer.getValues(ctx, fromScorer(scorer));
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/FakeScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/FakeScorer.java b/lucene/core/src/java/org/apache/lucene/search/FakeScorer.java
index c8b3438..271833a 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FakeScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FakeScorer.java
@@ -56,7 +56,7 @@ final class FakeScorer extends Scorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
+ public Collection<ChildScorable> getChildren() {
throw new UnsupportedOperationException();
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
index 3fe0e93..2437a33 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
@@ -412,7 +412,7 @@ public abstract class FieldComparator<T> {
public static final class RelevanceComparator extends FieldComparator<Float> implements LeafFieldComparator {
private final float[] scores;
private float bottom;
- private Scorer scorer;
+ private Scorable scorer;
private float topValue;
/** Creates a new comparator based on relevance for {@code numHits}. */
@@ -454,7 +454,7 @@ public abstract class FieldComparator<T> {
}
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
// wrap with a ScoreCachingWrappingScorer so that successive calls to
// score() will not incur score computation over and
// over again.
@@ -546,7 +546,7 @@ public abstract class FieldComparator<T> {
}
@Override
- public void setScorer(Scorer scorer) {}
+ public void setScorer(Scorable scorer) {}
}
/** Sorts by field's natural Term sort order, using
@@ -818,7 +818,7 @@ public abstract class FieldComparator<T> {
}
@Override
- public void setScorer(Scorer scorer) {}
+ public void setScorer(Scorable scorer) {}
}
/** Sorts by field's natural Term sort order. All
@@ -926,6 +926,6 @@ public abstract class FieldComparator<T> {
}
@Override
- public void setScorer(Scorer scorer) {}
+ public void setScorer(Scorable scorer) {}
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/FilterLeafCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/FilterLeafCollector.java b/lucene/core/src/java/org/apache/lucene/search/FilterLeafCollector.java
index 14f5ab0..5adecb9 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FilterLeafCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FilterLeafCollector.java
@@ -34,7 +34,7 @@ public abstract class FilterLeafCollector implements LeafCollector {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
in.setScorer(scorer);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/FilterScorable.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/FilterScorable.java b/lucene/core/src/java/org/apache/lucene/search/FilterScorable.java
new file mode 100644
index 0000000..c2e68c1
--- /dev/null
+++ b/lucene/core/src/java/org/apache/lucene/search/FilterScorable.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.lucene.search;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Filter a {@link Scorable}, intercepting methods and optionally changing
+ * their return values
+ *
+ * The default implementation simply passes all calls to its delegate, with
+ * the exception of {@link #setMinCompetitiveScore(float)} which defaults
+ * to a no-op.
+ */
+public class FilterScorable extends Scorable {
+
+ protected final Scorable in;
+
+ /**
+ * Filter a scorer
+ * @param in the scorer to filter
+ */
+ public FilterScorable(Scorable in) {
+ this.in = in;
+ }
+
+ @Override
+ public float score() throws IOException {
+ return in.score();
+ }
+
+ @Override
+ public int docID() {
+ return in.docID();
+ }
+
+ @Override
+ public Collection<ChildScorable> getChildren() throws IOException {
+ return Collections.singletonList(new ChildScorable(in, "FILTER"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java b/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
index 27480e0..511de47 100644
--- a/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
+++ b/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
@@ -503,7 +503,7 @@ public class LRUQueryCache implements QueryCache, Accountable {
scorer.score(new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
@Override
public void collect(int doc) throws IOException {
@@ -520,7 +520,7 @@ public class LRUQueryCache implements QueryCache, Accountable {
scorer.score(new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
@Override
public void collect(int doc) throws IOException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/LeafCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/LeafCollector.java b/lucene/core/src/java/org/apache/lucene/search/LeafCollector.java
index 9704026..02e3036 100644
--- a/lucene/core/src/java/org/apache/lucene/search/LeafCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/LeafCollector.java
@@ -76,7 +76,7 @@ public interface LeafCollector {
* {@link #collect(int)}), should save the passed-in Scorer and call
* scorer.score() when needed.
*/
- void setScorer(Scorer scorer) throws IOException;
+ void setScorer(Scorable scorer) throws IOException;
/**
* Called once for every document matching a query, with the unbased document
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
index 677639c..c2c2274 100644
--- a/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
@@ -114,6 +114,6 @@ public interface LeafFieldComparator {
*
* @param scorer Scorer instance that you should use to
* obtain the current hit's score, if necessary. */
- void setScorer(Scorer scorer) throws IOException;
+ void setScorer(Scorable scorer) throws IOException;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/LongValuesSource.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/LongValuesSource.java b/lucene/core/src/java/org/apache/lucene/search/LongValuesSource.java
index a7d5981..867d411 100644
--- a/lucene/core/src/java/org/apache/lucene/search/LongValuesSource.java
+++ b/lucene/core/src/java/org/apache/lucene/search/LongValuesSource.java
@@ -325,7 +325,7 @@ public abstract class LongValuesSource implements SegmentCacheable {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
holder.values = producer.getValues(ctx, DoubleValuesSource.fromScorer(scorer));
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/MinShouldMatchSumScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/MinShouldMatchSumScorer.java b/lucene/core/src/java/org/apache/lucene/search/MinShouldMatchSumScorer.java
index 6ffbe34..9a95da4 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MinShouldMatchSumScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MinShouldMatchSumScorer.java
@@ -117,11 +117,11 @@ final class MinShouldMatchSumScorer extends Scorer {
}
@Override
- public final Collection<ChildScorer> getChildren() throws IOException {
- List<ChildScorer> matchingChildren = new ArrayList<>();
+ public final Collection<ChildScorable> getChildren() throws IOException {
+ List<ChildScorable> matchingChildren = new ArrayList<>();
updateFreq();
for (DisiWrapper s = lead; s != null; s = s.next) {
- matchingChildren.add(new ChildScorer(s.scorer, "SHOULD"));
+ matchingChildren.add(new ChildScorable(s.scorer, "SHOULD"));
}
return matchingChildren;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java b/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
index 2b8bda3..82251e4 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
@@ -151,11 +151,11 @@ public class MultiCollector implements Collector {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
if (cacheScores) {
scorer = new ScoreCachingWrappingScorer(scorer);
}
- scorer = new FilterScorer(scorer) {
+ scorer = new FilterScorable(scorer) {
@Override
public void setMinCompetitiveScore(float minScore) {
// Ignore calls to setMinCompetitiveScore so that if we wrap two
@@ -164,10 +164,7 @@ public class MultiCollector implements Collector {
// min scores and take the maximum min score across collectors, but
// this is very unlikely to be helpful in practice.
}
- @Override
- public float getMaxScore(int upTo) throws IOException {
- return in.getMaxScore(upTo);
- }
+
};
for (int i = 0; i < numCollectors; ++i) {
final LeafCollector c = collectors[i];
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/MultiCollectorManager.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/MultiCollectorManager.java b/lucene/core/src/java/org/apache/lucene/search/MultiCollectorManager.java
index efb2864..6e73c54 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MultiCollectorManager.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MultiCollectorManager.java
@@ -16,13 +16,13 @@
*/
package org.apache.lucene.search;
-import org.apache.lucene.index.LeafReaderContext;
-
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.lucene.index.LeafReaderContext;
+
/**
* A {@link CollectorManager} implements which wrap a set of {@link CollectorManager}
* as {@link MultiCollector} acts for {@link Collector}.
@@ -97,7 +97,7 @@ public class MultiCollectorManager implements CollectorManager<MultiCollectorMan
}
@Override
- final public void setScorer(final Scorer scorer) throws IOException {
+ final public void setScorer(final Scorable scorer) throws IOException {
for (LeafCollector leafCollector : leafCollectors)
if (leafCollector != null)
leafCollector.setScorer(scorer);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/MultiLeafFieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/MultiLeafFieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/MultiLeafFieldComparator.java
index 5fdb87d..acec040 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MultiLeafFieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MultiLeafFieldComparator.java
@@ -83,7 +83,7 @@ final class MultiLeafFieldComparator implements LeafFieldComparator {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
for (LeafFieldComparator comparator : comparators) {
comparator.setScorer(scorer);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java b/lucene/core/src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java
index e5294db..def8d65 100644
--- a/lucene/core/src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java
@@ -37,10 +37,10 @@ public class PositiveScoresOnlyCollector extends FilterCollector {
throws IOException {
return new FilterLeafCollector(super.getLeafCollector(context)) {
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = new ScoreCachingWrappingScorer(scorer);
in.setScorer(this.scorer);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java b/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
index cee0a45..d5c114a 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
@@ -93,8 +93,8 @@ class ReqExclScorer extends Scorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
- return Collections.singleton(new ChildScorer(reqScorer, "MUST"));
+ public Collection<ChildScorable> getChildren() {
+ return Collections.singleton(new ChildScorable(reqScorer, "MUST"));
}
/**
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/ReqOptSumScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/ReqOptSumScorer.java b/lucene/core/src/java/org/apache/lucene/search/ReqOptSumScorer.java
index 28f64b2..22df0af 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ReqOptSumScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ReqOptSumScorer.java
@@ -300,10 +300,10 @@ class ReqOptSumScorer extends Scorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
- ArrayList<ChildScorer> children = new ArrayList<>(2);
- children.add(new ChildScorer(reqScorer, "MUST"));
- children.add(new ChildScorer(optScorer, "SHOULD"));
+ public Collection<ChildScorable> getChildren() {
+ ArrayList<ChildScorable> children = new ArrayList<>(2);
+ children.add(new ChildScorable(reqScorer, "MUST"));
+ children.add(new ChildScorable(optScorer, "SHOULD"));
return children;
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/Scorable.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/Scorable.java b/lucene/core/src/java/org/apache/lucene/search/Scorable.java
new file mode 100644
index 0000000..5102949
--- /dev/null
+++ b/lucene/core/src/java/org/apache/lucene/search/Scorable.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.lucene.search;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Allows access to the score of a Query
+ */
+public abstract class Scorable {
+
+ /**
+ * Returns the score of the current document matching the query.
+ */
+ public abstract float score() throws IOException;
+
+ /**
+ * Returns the doc ID that is currently being scored.
+ */
+ public abstract int docID();
+
+ /**
+ * Optional method: Tell the scorer that its iterator may safely ignore all
+ * documents whose score is less than the given {@code minScore}. This is a
+ * no-op by default.
+ *
+ * This method may only be called from collectors that use
+ * {@link ScoreMode#TOP_SCORES}, and successive calls may only set increasing
+ * values of {@code minScore}.
+ */
+ public void setMinCompetitiveScore(float minScore) {
+ // no-op by default
+ }
+
+ /**
+ * Returns child sub-scorers positioned on the current document
+ * @lucene.experimental
+ */
+ public Collection<ChildScorable> getChildren() throws IOException {
+ return Collections.emptyList();
+ }
+
+ /** A child Scorer and its relationship to its parent.
+ * the meaning of the relationship depends upon the parent query.
+ * @lucene.experimental */
+ public static class ChildScorable {
+ /**
+ * Child Scorer. (note this is typically a direct child, and may
+ * itself also have children).
+ */
+ public final Scorable child;
+ /**
+ * An arbitrary string relating this scorer to the parent.
+ */
+ public final String relationship;
+
+ /**
+ * Creates a new ChildScorer node with the specified relationship.
+ * <p>
+ * The relationship can be any be any string that makes sense to
+ * the parent Scorer.
+ */
+ public ChildScorable(Scorable child, String relationship) {
+ this.child = child;
+ this.relationship = relationship;
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/ScoreCachingWrappingScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/ScoreCachingWrappingScorer.java b/lucene/core/src/java/org/apache/lucene/search/ScoreCachingWrappingScorer.java
index d775c37..0f11609 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ScoreCachingWrappingScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ScoreCachingWrappingScorer.java
@@ -32,14 +32,15 @@ import java.util.Collections;
* several places, however all they have in hand is a {@link Scorer} object, and
* might end up computing the score of a document more than once.
*/
-public final class ScoreCachingWrappingScorer extends FilterScorer {
+public final class ScoreCachingWrappingScorer extends Scorable {
private int curDoc = -1;
private float curScore;
+ private final Scorable in;
/** Creates a new instance by wrapping the given scorer. */
- public ScoreCachingWrappingScorer(Scorer scorer) {
- super(scorer);
+ public ScoreCachingWrappingScorer(Scorable scorer) {
+ this.in = scorer;
}
@Override
@@ -54,22 +55,17 @@ public final class ScoreCachingWrappingScorer extends FilterScorer {
}
@Override
- public float getMaxScore(int upTo) throws IOException {
- return in.getMaxScore(upTo);
- }
-
- @Override
- public int advanceShallow(int target) throws IOException {
- return in.advanceShallow(target);
+ public void setMinCompetitiveScore(float minScore) {
+ in.setMinCompetitiveScore(minScore);
}
@Override
- public void setMinCompetitiveScore(float minScore) {
- in.setMinCompetitiveScore(minScore);
+ public int docID() {
+ return in.docID();
}
@Override
- public Collection<ChildScorer> getChildren() {
- return Collections.singleton(new ChildScorer(in, "CACHED"));
+ public Collection<ChildScorable> getChildren() {
+ return Collections.singleton(new ChildScorable(in, "CACHED"));
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/Scorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/Scorer.java b/lucene/core/src/java/org/apache/lucene/search/Scorer.java
index 9a48840..aef2168 100644
--- a/lucene/core/src/java/org/apache/lucene/search/Scorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/Scorer.java
@@ -18,8 +18,6 @@ package org.apache.lucene.search;
import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
/**
* Expert: Common scoring functionality for different types of queries.
@@ -39,7 +37,7 @@ import java.util.Collections;
* TopScoreDocCollector}) will not properly collect hits
* with these scores.
*/
-public abstract class Scorer {
+public abstract class Scorer extends Scorable {
/** the Scorer's parent Weight. in some cases this may be null */
// TODO can we clean this up?
protected final Weight weight;
@@ -52,65 +50,12 @@ public abstract class Scorer {
this.weight = weight;
}
- /**
- * Returns the doc ID that is currently being scored.
- * This will return {@code -1} if the {@link #iterator()} is not positioned
- * or {@link DocIdSetIterator#NO_MORE_DOCS} if it has been entirely consumed.
- * @see DocIdSetIterator#docID()
- */
- public abstract int docID();
-
- /** Returns the score of the current document matching the query.
- * Initially invalid, until {@link DocIdSetIterator#nextDoc()} or
- * {@link DocIdSetIterator#advance(int)} is called on the {@link #iterator()}
- * the first time, or when called from within {@link LeafCollector#collect}.
- */
- public abstract float score() throws IOException;
-
/** returns parent Weight
* @lucene.experimental
*/
public Weight getWeight() {
return weight;
}
-
- /**
- * Returns child sub-scorers positioned on the current document
- *
- * Note that this method should not be called on Scorers passed to {@link LeafCollector#setScorer(Scorer)},
- * as these may be synthetic Scorers produced by {@link BulkScorer} which will throw an Exception.
- *
- * @lucene.experimental
- */
- public Collection<ChildScorer> getChildren() throws IOException {
- return Collections.emptyList();
- }
-
- /** A child Scorer and its relationship to its parent.
- * the meaning of the relationship depends upon the parent query.
- * @lucene.experimental */
- public static class ChildScorer {
- /**
- * Child Scorer. (note this is typically a direct child, and may
- * itself also have children).
- */
- public final Scorer child;
- /**
- * An arbitrary string relating this scorer to the parent.
- */
- public final String relationship;
-
- /**
- * Creates a new ChildScorer node with the specified relationship.
- * <p>
- * The relationship can be any be any string that makes sense to
- * the parent Scorer.
- */
- public ChildScorer(Scorer child, String relationship) {
- this.child = child;
- this.relationship = relationship;
- }
- }
/**
* Return a {@link DocIdSetIterator} over matching documents.
@@ -145,19 +90,6 @@ public abstract class Scorer {
}
/**
- * Optional method: Tell the scorer that its iterator may safely ignore all
- * documents whose score is less than the given {@code minScore}. This is a
- * no-op by default.
- *
- * This method may only be called from collectors that use
- * {@link ScoreMode#TOP_SCORES}, and successive calls may only set increasing
- * values of {@code minScore}.
- */
- public void setMinCompetitiveScore(float minScore) {
- // no-op by default
- }
-
- /**
* Advance to the block of documents that contains {@code target} in order to
* get scoring information about this block. This method is implicitly called
* by {@link DocIdSetIterator#advance(int)} and
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/SimpleCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/SimpleCollector.java b/lucene/core/src/java/org/apache/lucene/search/SimpleCollector.java
index b299f52..23a0736 100644
--- a/lucene/core/src/java/org/apache/lucene/search/SimpleCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/SimpleCollector.java
@@ -38,7 +38,7 @@ public abstract class SimpleCollector implements Collector, LeafCollector {
protected void doSetNextReader(LeafReaderContext context) throws IOException {}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
// no-op by default
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/SimpleFieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/SimpleFieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/SimpleFieldComparator.java
index a258e24..c6ea195 100644
--- a/lucene/core/src/java/org/apache/lucene/search/SimpleFieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/SimpleFieldComparator.java
@@ -38,5 +38,5 @@ public abstract class SimpleFieldComparator<T> extends FieldComparator<T> implem
}
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java b/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
index 90c4555..616ad32 100644
--- a/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
@@ -49,7 +49,7 @@ public abstract class TopFieldCollector extends TopDocsCollector<Entry> {
final LeafFieldComparator comparator;
final int reverseMul;
- Scorer scorer;
+ Scorable scorer;
MultiComparatorLeafCollector(LeafFieldComparator[] comparators, int[] reverseMul) {
if (comparators.length == 1) {
@@ -62,7 +62,7 @@ public abstract class TopFieldCollector extends TopDocsCollector<Entry> {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
comparator.setScorer(scorer);
this.scorer = scorer;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/TopScoreDocCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/TopScoreDocCollector.java b/lucene/core/src/java/org/apache/lucene/search/TopScoreDocCollector.java
index f769f1a..9a24406 100644
--- a/lucene/core/src/java/org/apache/lucene/search/TopScoreDocCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/TopScoreDocCollector.java
@@ -38,10 +38,10 @@ public abstract class TopScoreDocCollector extends TopDocsCollector<ScoreDoc> {
abstract static class ScorerLeafCollector implements LeafCollector {
- Scorer scorer;
+ Scorable scorer;
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
}
@@ -70,7 +70,7 @@ public abstract class TopScoreDocCollector extends TopDocsCollector<ScoreDoc> {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
super.setScorer(scorer);
if (totalHits >= totalHitsThreshold
&& pqTop != null
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/java/org/apache/lucene/search/WANDScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/WANDScorer.java b/lucene/core/src/java/org/apache/lucene/search/WANDScorer.java
index 01b46f7..c6a5528 100644
--- a/lucene/core/src/java/org/apache/lucene/search/WANDScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/WANDScorer.java
@@ -197,11 +197,11 @@ final class WANDScorer extends Scorer {
}
@Override
- public final Collection<ChildScorer> getChildren() throws IOException {
- List<ChildScorer> matchingChildren = new ArrayList<>();
+ public final Collection<ChildScorable> getChildren() throws IOException {
+ List<ChildScorable> matchingChildren = new ArrayList<>();
advanceAllTail();
for (DisiWrapper s = lead; s != null; s = s.next) {
- matchingChildren.add(new ChildScorer(s.scorer, "SHOULD"));
+ matchingChildren.add(new ChildScorable(s.scorer, "SHOULD"));
}
return matchingChildren;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java b/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
index 9873953..cfa51b9 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
@@ -31,8 +31,8 @@ import org.apache.lucene.search.CollectionStatistics;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
+import org.apache.lucene.search.Scorable;
import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TermStatistics;
@@ -198,13 +198,13 @@ public class TestOmitTf extends LuceneTestCase {
searcher.search(q1,
new CountingHitCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
public ScoreMode scoreMode() {
return ScoreMode.COMPLETE;
}
@Override
- public final void setScorer(Scorer scorer) {
+ public final void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -220,13 +220,13 @@ public class TestOmitTf extends LuceneTestCase {
searcher.search(q2,
new CountingHitCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
public ScoreMode scoreMode() {
return ScoreMode.COMPLETE;
}
@Override
- public final void setScorer(Scorer scorer) {
+ public final void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -245,13 +245,13 @@ public class TestOmitTf extends LuceneTestCase {
searcher.search(q3,
new CountingHitCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
public ScoreMode scoreMode() {
return ScoreMode.COMPLETE;
}
@Override
- public final void setScorer(Scorer scorer) {
+ public final void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -268,13 +268,13 @@ public class TestOmitTf extends LuceneTestCase {
searcher.search(q4,
new CountingHitCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
public ScoreMode scoreMode() {
return ScoreMode.COMPLETE;
}
@Override
- public final void setScorer(Scorer scorer) {
+ public final void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java b/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
index 1657f9b..a9d84cf 100644
--- a/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
+++ b/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
@@ -50,7 +50,7 @@ final class JustCompileSearch {
}
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/MultiCollectorTest.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/MultiCollectorTest.java b/lucene/core/src/test/org/apache/lucene/search/MultiCollectorTest.java
index d306dd9..de86924 100644
--- a/lucene/core/src/test/org/apache/lucene/search/MultiCollectorTest.java
+++ b/lucene/core/src/test/org/apache/lucene/search/MultiCollectorTest.java
@@ -46,7 +46,7 @@ public class MultiCollectorTest extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
setScorerCalled = true;
}
@@ -110,9 +110,9 @@ public class MultiCollectorTest extends LuceneTestCase {
return new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {
- while (expectedScorer.equals(scorer.getClass()) == false && scorer instanceof FilterScorer) {
- scorer = ((FilterScorer) scorer).in;
+ public void setScorer(Scorable scorer) throws IOException {
+ while (expectedScorer.equals(scorer.getClass()) == false && scorer instanceof FilterScorable) {
+ scorer = ((FilterScorable) scorer).in;
}
assertEquals(expectedScorer, scorer.getClass());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
index d8273a5..7b12500 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
@@ -262,7 +262,7 @@ public class TestBooleanOr extends LuceneTestCase {
scorer.score(new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
@Override
public void collect(int doc) throws IOException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
index 37d5557..1b5da1b 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
@@ -501,7 +501,7 @@ public class TestBooleanQuery extends LuceneTestCase {
final AtomicBoolean matched = new AtomicBoolean();
searcher.search(bq, new SimpleCollector() {
int docBase;
- Scorer scorer;
+ Scorable scorer;
@Override
protected void doSetNextReader(LeafReaderContext context)
@@ -516,7 +516,7 @@ public class TestBooleanQuery extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
index b207264..ba1d8f9 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
@@ -37,7 +37,6 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.Scorer.ChildScorer;
import org.apache.lucene.search.similarities.ClassicSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
@@ -150,7 +149,7 @@ public class TestBooleanQueryVisitSubscorers extends LuceneTestCase {
return new FilterLeafCollector(super.getLeafCollector(context)) {
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
super.setScorer(scorer);
tqsSet.clear();
fillLeaves(scorer, tqsSet);
@@ -171,11 +170,11 @@ public class TestBooleanQueryVisitSubscorers extends LuceneTestCase {
};
}
- private void fillLeaves(Scorer scorer, Set<Scorer> set) throws IOException {
- if (scorer.getWeight().getQuery() instanceof TermQuery) {
- set.add(scorer);
+ private void fillLeaves(Scorable scorer, Set<Scorer> set) throws IOException {
+ if (scorer instanceof TermScorer) {
+ set.add((Scorer)scorer);
} else {
- for (ChildScorer child : scorer.getChildren()) {
+ for (Scorable.ChildScorable child : scorer.getChildren()) {
fillLeaves(child.child, set);
}
}
@@ -283,7 +282,7 @@ public class TestBooleanQueryVisitSubscorers extends LuceneTestCase {
return new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
final StringBuilder builder = new StringBuilder();
summarizeScorer(builder, scorer, 0);
summaries.add(builder.toString());
@@ -296,13 +295,13 @@ public class TestBooleanQueryVisitSubscorers extends LuceneTestCase {
};
}
- private static void summarizeScorer(final StringBuilder builder, final Scorer scorer, final int indent) throws IOException {
+ private static void summarizeScorer(final StringBuilder builder, final Scorable scorer, final int indent) throws IOException {
builder.append(scorer.getClass().getSimpleName());
if (scorer instanceof TermScorer) {
- TermQuery termQuery = (TermQuery) scorer.getWeight().getQuery();
+ TermQuery termQuery = (TermQuery) ((Scorer)scorer).getWeight().getQuery();
builder.append(" ").append(termQuery.getTerm().field()).append(":").append(termQuery.getTerm().text());
}
- for (final ChildScorer childScorer : scorer.getChildren()) {
+ for (final Scorable.ChildScorable childScorer : scorer.getChildren()) {
indent(builder, indent + 1).append(childScorer.relationship).append(" ");
summarizeScorer(builder, childScorer.child, indent + 2);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java b/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java
index ebe7887..b4e56ec 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java
@@ -125,13 +125,13 @@ public class TestConjunctions extends LuceneTestCase {
final boolean[] setScorerCalled = new boolean[1];
s.search(q, new SimpleCollector() {
@Override
- public void setScorer(Scorer s) throws IOException {
- Collection<Scorer.ChildScorer> childScorers = s.getChildren();
+ public void setScorer(Scorable s) throws IOException {
+ Collection<Scorer.ChildScorable> childScorers = s.getChildren();
setScorerCalled[0] = true;
assertEquals(2, childScorers.size());
Set<String> terms = new HashSet<>();
- for (Scorer.ChildScorer childScorer : childScorers) {
- Query query = childScorer.child.getWeight().getQuery();
+ for (Scorer.ChildScorable childScorer : childScorers) {
+ Query query = ((Scorer)childScorer.child).getWeight().getQuery();
assertTrue(query instanceof TermQuery);
Term term = ((TermQuery) query).getTerm();
assertEquals("field", term.field());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java b/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
index ef28b43..2035f9e 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
@@ -18,6 +18,7 @@ package org.apache.lucene.search;
import java.io.IOException;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -56,14 +57,14 @@ public class TestConstantScoreQuery extends LuceneTestCase {
private void checkHits(IndexSearcher searcher, Query q, final float expectedScore, final Class<? extends Scorer> innerScorerClass) throws IOException {
final int[] count = new int[1];
searcher.search(q, new SimpleCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
if (innerScorerClass != null) {
- final FilterScorer innerScorer = (FilterScorer) scorer;
- assertEquals("inner Scorer is implemented by wrong class", innerScorerClass, innerScorer.in.getClass());
+ Scorable innerScorer = rootScorer(scorer);
+ assertEquals("inner Scorer is implemented by wrong class", innerScorerClass, innerScorer.getClass());
}
}
@@ -80,6 +81,23 @@ public class TestConstantScoreQuery extends LuceneTestCase {
});
assertEquals("invalid number of results", 1, count[0]);
}
+
+ private Scorable rootScorer(Scorable s) {
+ while (true) {
+ try {
+ Collection<Scorable.ChildScorable> children = s.getChildren();
+ if (children.size() == 0)
+ return s;
+ s = children.stream().findFirst().get().child;
+ }
+ catch (Exception e) {
+ // If FakeScorer returns UnsupportedOperationException
+ // We catch Exception here to deal with the (impossible) IOException too
+ return s;
+ }
+
+ }
+ }
public void testWrapped2Times() throws Exception {
Directory directory = null;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestDoubleValuesSource.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestDoubleValuesSource.java b/lucene/core/src/test/org/apache/lucene/search/TestDoubleValuesSource.java
index e300cf7..a6cd8e1 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestDoubleValuesSource.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestDoubleValuesSource.java
@@ -210,7 +210,7 @@ public class TestDoubleValuesSource extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.v = rewritten.getValues(this.ctx, DoubleValuesSource.fromScorer(scorer));
}
@@ -238,7 +238,7 @@ public class TestDoubleValuesSource extends LuceneTestCase {
searcher.search(q, new SimpleCollector() {
DoubleValues v;
- Scorer scorer;
+ Scorable scorer;
LeafReaderContext ctx;
@Override
@@ -247,7 +247,7 @@ public class TestDoubleValuesSource extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
this.v = vs.getValues(this.ctx, DoubleValuesSource.fromScorer(scorer));
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java b/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
index 69d8679..d4ea75d 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
@@ -193,7 +193,7 @@ class ElevationComparatorSource extends FieldComparatorSource {
}
@Override
- public void setScorer(Scorer scorer) {}
+ public void setScorer(Scorable scorer) {}
};
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestMultiCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestMultiCollector.java b/lucene/core/src/test/org/apache/lucene/search/TestMultiCollector.java
index 6049e5f..f189821 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestMultiCollector.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestMultiCollector.java
@@ -81,7 +81,7 @@ public class TestMultiCollector extends LuceneTestCase {
public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
return new FilterLeafCollector(super.getLeafCollector(context)) {
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
super.setScorer(scorer);
setScorerCalled.set(true);
}
@@ -200,7 +200,7 @@ public class TestMultiCollector extends LuceneTestCase {
};
Collector collector = new SimpleCollector() {
- private Scorer scorer;
+ private Scorable scorer;
float minScore = 0;
@Override
@@ -209,7 +209,7 @@ public class TestMultiCollector extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestReqExclBulkScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestReqExclBulkScorer.java b/lucene/core/src/test/org/apache/lucene/search/TestReqExclBulkScorer.java
index be711b0..4509605 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestReqExclBulkScorer.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestReqExclBulkScorer.java
@@ -81,7 +81,7 @@ public class TestReqExclBulkScorer extends LuceneTestCase {
if (random().nextBoolean()) {
reqExcl.score(new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
@Override
public void collect(int doc) throws IOException {
@@ -95,7 +95,7 @@ public class TestReqExclBulkScorer extends LuceneTestCase {
final int max = min + random().nextInt(10);
next = reqExcl.score(new LeafCollector() {
@Override
- public void setScorer(Scorer scorer) throws IOException {}
+ public void setScorer(Scorable scorer) throws IOException {}
@Override
public void collect(int doc) throws IOException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java b/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
index 2573101..c3da803 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
@@ -75,7 +75,7 @@ public class TestScoreCachingWrappingScorer extends LuceneTestCase {
private static final class ScoreCachingCollector extends SimpleCollector {
private int idx = 0;
- private Scorer scorer;
+ private Scorable scorer;
float[] mscores;
public ScoreCachingCollector(int numToCollect) {
@@ -95,7 +95,7 @@ public class TestScoreCachingWrappingScorer extends LuceneTestCase {
++idx;
}
- @Override public void setScorer(Scorer scorer) {
+ @Override public void setScorer(Scorable scorer) {
this.scorer = new ScoreCachingWrappingScorer(scorer);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java b/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
index d855b4f..5f9c631 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
@@ -70,9 +70,9 @@ public class TestSimilarity extends LuceneTestCase {
Term c = new Term("field", "c");
searcher.search(new TermQuery(b), new SimpleCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -91,9 +91,9 @@ public class TestSimilarity extends LuceneTestCase {
//System.out.println(bq.toString("field"));
searcher.search(bq.build(), new SimpleCollector() {
private int base = 0;
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -115,9 +115,9 @@ public class TestSimilarity extends LuceneTestCase {
//System.out.println(pq.toString("field"));
searcher.search(pq,
new SimpleCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
@@ -134,9 +134,9 @@ public class TestSimilarity extends LuceneTestCase {
pq = new PhraseQuery(2, a.field(), a.bytes(), b.bytes());
//System.out.println(pq.toString("field"));
searcher.search(pq, new SimpleCollector() {
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java b/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
index 2fd22a0..c26cab8 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
@@ -185,11 +185,8 @@ public class TestSloppyPhraseQuery extends LuceneTestCase {
Scorer scorer;
@Override
- public void setScorer(Scorer scorer) throws IOException {
- this.scorer = scorer;
- while (this.scorer instanceof AssertingScorer) {
- this.scorer = ((AssertingScorer)this.scorer).getIn();
- }
+ public void setScorer(Scorable scorer) throws IOException {
+ this.scorer = (Scorer) AssertingScorable.unwrap(scorer);
}
@Override
@@ -215,11 +212,8 @@ public class TestSloppyPhraseQuery extends LuceneTestCase {
Scorer scorer;
@Override
- public void setScorer(Scorer scorer) {
- this.scorer = scorer;
- while (this.scorer instanceof AssertingScorer) {
- this.scorer = ((AssertingScorer)this.scorer).getIn();
- }
+ public void setScorer(Scorable scorer) {
+ this.scorer = (Scorer) AssertingScorable.unwrap(scorer);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java b/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
index b49793e..7e6e323 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
@@ -33,7 +33,6 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.Scorer.ChildScorer;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
@@ -80,7 +79,7 @@ public class TestSubScorerFreqs extends LuceneTestCase {
private static class CountingCollector extends FilterCollector {
public final Map<Integer, Map<Query, Float>> docCounts = new HashMap<>();
- private final Map<Query, Scorer> subScorers = new HashMap<>();
+ private final Map<Query, Scorable> subScorers = new HashMap<>();
private final Set<String> relationships;
public CountingCollector(Collector other) {
@@ -92,13 +91,14 @@ public class TestSubScorerFreqs extends LuceneTestCase {
this.relationships = relationships;
}
- public void setSubScorers(Scorer scorer, String relationship) throws IOException {
- for (ChildScorer child : scorer.getChildren()) {
- if (scorer instanceof AssertingScorer || relationships.contains(child.relationship)) {
- setSubScorers(child.child, child.relationship);
+ public void setSubScorers(Scorable scorer) throws IOException {
+ scorer = AssertingScorable.unwrap(scorer);
+ for (Scorable.ChildScorable child : scorer.getChildren()) {
+ if (relationships.contains(child.relationship)) {
+ setSubScorers(child.child);
}
}
- subScorers.put(scorer.getWeight().getQuery(), scorer);
+ subScorers.put(((Scorer)scorer).getWeight().getQuery(), scorer);
}
public LeafCollector getLeafCollector(LeafReaderContext context)
@@ -109,8 +109,8 @@ public class TestSubScorerFreqs extends LuceneTestCase {
@Override
public void collect(int doc) throws IOException {
final Map<Query, Float> freqs = new HashMap<Query, Float>();
- for (Map.Entry<Query, Scorer> ent : subScorers.entrySet()) {
- Scorer value = ent.getValue();
+ for (Map.Entry<Query, Scorable> ent : subScorers.entrySet()) {
+ Scorable value = ent.getValue();
int matchId = value.docID();
freqs.put(ent.getKey(), matchId == doc ? value.score() : 0.0f);
}
@@ -119,10 +119,10 @@ public class TestSubScorerFreqs extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
super.setScorer(scorer);
subScorers.clear();
- setSubScorers(scorer, "TOP");
+ setSubScorers(scorer);
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java b/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
index f05935c..6c3f89f 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
@@ -94,10 +94,10 @@ public class TestTermScorer extends LuceneTestCase {
ts.score(new SimpleCollector() {
private int base = 0;
- private Scorer scorer;
+ private Scorable scorer;
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
this.scorer = scorer;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java b/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
index f375537..630e310 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
@@ -342,7 +342,7 @@ public class TestTimeLimitingCollector extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) throws IOException {
+ public void setScorer(Scorable scorer) throws IOException {
// scorer is not needed
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java b/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java
index 9701199..caba25f 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java
@@ -61,7 +61,7 @@ public class TestTopDocsCollector extends LuceneTestCase {
}
@Override
- public void setScorer(Scorer scorer) {
+ public void setScorer(Scorable scorer) {
// Don't do anything. Assign scores in random
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java b/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java
index 2962a2e..36a1838 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java
@@ -243,8 +243,8 @@ public class TestTopFieldCollector extends LuceneTestCase {
final LeafCollector in = topCollector.getLeafCollector(context);
return new FilterLeafCollector(in) {
@Override
- public void setScorer(final Scorer scorer) throws IOException {
- Scorer s = new Scorer(null) {
+ public void setScorer(final Scorable scorer) throws IOException {
+ Scorable s = new FilterScorable(scorer) {
int lastComputedDoc = -1;
@@ -257,21 +257,6 @@ public class TestTopFieldCollector extends LuceneTestCase {
return scorer.score();
}
- @Override
- public float getMaxScore(int upTo) throws IOException {
- return scorer.getMaxScore(upTo);
- }
-
- @Override
- public int docID() {
- return scorer.docID();
- }
-
- @Override
- public DocIdSetIterator iterator() {
- return scorer.iterator();
- }
-
};
super.setScorer(s);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysScorer.java
----------------------------------------------------------------------
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysScorer.java b/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysScorer.java
index c5f3f76..e1e5b55 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysScorer.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysScorer.java
@@ -607,8 +607,8 @@ class DrillSidewaysScorer extends BulkScorer {
}
@Override
- public Collection<ChildScorer> getChildren() {
- return Collections.singletonList(new ChildScorer(baseScorer, "MUST"));
+ public Collection<ChildScorable> getChildren() {
+ return Collections.singletonList(new ChildScorable(baseScorer, "MUST"));
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/910a0231/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java
----------------------------------------------------------------------
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java b/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java
index f06527e..3626b91 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java
@@ -27,9 +27,9 @@ import org.apache.lucene.search.FieldDoc;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MultiCollector;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Scorable;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.ScoreMode;
-import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.TopDocs;
@@ -52,7 +52,7 @@ import org.apache.lucene.util.DocIdSetBuilder;
public class FacetsCollector extends SimpleCollector implements Collector {
private LeafReaderContext context;
- private Scorer scorer;
+ private Scorable scorer;
private int totalHits;
private float[] scores;
private final boolean keepScores;
@@ -137,7 +137,7 @@ public class FacetsCollector extends SimpleCollector implements Collector {
}
@Override
- public final void setScorer(Scorer scorer) throws IOException {
+ public final void setScorer(Scorable scorer) throws IOException {
this.scorer = scorer;
}