You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2017/12/07 12:45:35 UTC
[41/50] [abbrv] lucene-solr:jira/solr-11285-sim: LUCENE-4100: Faster
disjunctions when the hit count is not needed.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
----------------------------------------------------------------------
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 b3bde2a..bea01a6 100644
--- a/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
@@ -19,6 +19,7 @@ package org.apache.solr.search;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Weight;
import java.io.IOException;
@@ -40,8 +41,8 @@ public final class WrappedQuery extends ExtendedQueryBase {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
- return q.createWeight(searcher, needsScores, boost);
+ public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
+ return q.createWeight(searcher, scoreMode, boost);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
index 2383a14..d85b3af 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
@@ -28,6 +28,7 @@ import org.apache.lucene.index.MultiDocValues;
import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.index.SortedNumericDocValues;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.util.BitUtil;
import org.apache.lucene.util.BytesRef;
@@ -346,7 +347,7 @@ class FacetFieldProcessorByHashDV extends FacetFieldProcessor {
SortedDocValues docValues = globalDocValues; // this segment/leaf. NN
LongValues toGlobal = LongValues.IDENTITY; // this segment to global ordinal. NN
- @Override public boolean needsScores() { return false; }
+ @Override public ScoreMode scoreMode() { return ScoreMode.COMPLETE_NO_SCORES; }
@Override
protected void doSetNextReader(LeafReaderContext ctx) throws IOException {
@@ -376,7 +377,7 @@ class FacetFieldProcessorByHashDV extends FacetFieldProcessor {
DocSetUtil.collectSortedDocSet(fcontext.base, fcontext.searcher.getIndexReader(), new SimpleCollector() {
SortedNumericDocValues values = null; //NN
- @Override public boolean needsScores() { return false; }
+ @Override public ScoreMode scoreMode() { return ScoreMode.COMPLETE_NO_SCORES; }
@Override
protected void doSetNextReader(LeafReaderContext ctx) throws IOException {
@@ -407,7 +408,7 @@ class FacetFieldProcessorByHashDV extends FacetFieldProcessor {
DocSetUtil.collectSortedDocSet(fcontext.base, fcontext.searcher.getIndexReader(), new SimpleCollector() {
NumericDocValues values = null; //NN
- @Override public boolean needsScores() { return false; }
+ @Override public ScoreMode scoreMode() { return ScoreMode.COMPLETE_NO_SCORES; }
@Override
protected void doSetNextReader(LeafReaderContext ctx) throws IOException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java b/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
index 1d10a04..5842e92 100644
--- a/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/join/GraphQuery.java
@@ -34,6 +34,7 @@ import org.apache.lucene.search.DocValuesFieldExistsQuery;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.Weight;
import org.apache.lucene.search.WildcardQuery;
@@ -109,7 +110,7 @@ public class GraphQuery extends Query {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
Weight graphWeight = new GraphQueryWeight((SolrIndexSearcher)searcher, boost);
return graphWeight;
}
@@ -306,6 +307,11 @@ public class GraphQuery extends Query {
}
@Override
+ public float maxScore() {
+ return score;
+ }
+
+ @Override
public DocIdSetIterator iterator() {
return iter;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/join/GraphTermsCollector.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/join/GraphTermsCollector.java b/solr/core/src/java/org/apache/solr/search/join/GraphTermsCollector.java
index 07cec7d..6ca02d3 100644
--- a/solr/core/src/java/org/apache/solr/search/join/GraphTermsCollector.java
+++ b/solr/core/src/java/org/apache/solr/search/join/GraphTermsCollector.java
@@ -29,6 +29,7 @@ import org.apache.lucene.search.AutomatonQuery;
import org.apache.lucene.search.Collector;
import org.apache.lucene.search.DocValuesTermsQuery;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.search.TermInSetQuery;
import org.apache.lucene.util.BitSet;
@@ -111,8 +112,8 @@ abstract class GraphEdgeCollector extends SimpleCollector implements Collector {
public abstract Query getResultQuery(SchemaField matchField, boolean useAutomaton);
@Override
- public boolean needsScores() {
- return false;
+ public ScoreMode scoreMode() {
+ return ScoreMode.COMPLETE_NO_SCORES;
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
----------------------------------------------------------------------
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 7e8dbab..946125f 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
@@ -87,7 +87,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, org.apache.lucene.search.ScoreMode scoreMode, float boost) throws IOException {
SolrRequestInfo info = SolrRequestInfo.getRequestInfo();
CoreContainer container = info.getReq().getCore().getCoreContainer();
@@ -102,12 +102,12 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
final Query joinQuery;
try {
joinQuery = JoinUtil.createJoinQuery(fromField, true,
- toField, fromQuery, fromHolder.get(), scoreMode);
+ toField, fromQuery, fromHolder.get(), this.scoreMode);
} finally {
fromCore.close();
fromHolder.decref();
}
- return joinQuery.rewrite(searcher.getIndexReader()).createWeight(searcher, needsScores, boost);
+ return joinQuery.rewrite(searcher.getIndexReader()).createWeight(searcher, scoreMode, boost);
}
@Override
@@ -157,11 +157,11 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, org.apache.lucene.search.ScoreMode scoreMode, float boost) throws IOException {
SolrRequestInfo info = SolrRequestInfo.getRequestInfo();
final Query jq = JoinUtil.createJoinQuery(fromField, true,
- toField, fromQuery, info.getReq().getSearcher(), scoreMode);
- return jq.rewrite(searcher.getIndexReader()).createWeight(searcher, needsScores, boost);
+ toField, fromQuery, info.getReq().getSearcher(), this.scoreMode);
+ return jq.rewrite(searcher.getIndexReader()).createWeight(searcher, scoreMode, boost);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
index e1f3984..35b1b38 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
@@ -22,6 +22,7 @@ import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
import org.apache.lucene.search.CollectionStatistics;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.TermStatistics;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.common.SolrException;
@@ -156,7 +157,7 @@ public class ExactStatsCache extends StatsCache {
Query q = rb.getQuery();
try {
HashSet<Term> terms = new HashSet<>();
- searcher.createNormalizedWeight(q, true).extractTerms(terms);
+ searcher.createNormalizedWeight(q, ScoreMode.COMPLETE).extractTerms(terms);
IndexReaderContext context = searcher.getTopReaderContext();
HashMap<String,TermStats> statsMap = new HashMap<>();
HashMap<String,CollectionStats> colMap = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
----------------------------------------------------------------------
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 493235d..1c87a39 100644
--- a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
+++ b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
@@ -27,6 +27,7 @@ import org.apache.lucene.index.Term;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.Weight;
import org.apache.solr.schema.IndexSchema;
@@ -65,11 +66,11 @@ final class DeleteByQueryWrapper extends Query {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
final LeafReader wrapped = wrap((LeafReader) searcher.getIndexReader());
final IndexSearcher privateContext = new IndexSearcher(wrapped);
privateContext.setQueryCache(searcher.getQueryCache());
- final Weight inner = in.createWeight(privateContext, needsScores, boost);
+ final Weight inner = in.createWeight(privateContext, scoreMode, boost);
return new Weight(DeleteByQueryWrapper.this) {
@Override
public void extractTerms(Set<Term> terms) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/test/org/apache/solr/search/TestQueryWrapperFilter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestQueryWrapperFilter.java b/solr/core/src/test/org/apache/solr/search/TestQueryWrapperFilter.java
index 233e1a1..bddb269 100644
--- a/solr/core/src/test/org/apache/solr/search/TestQueryWrapperFilter.java
+++ b/solr/core/src/test/org/apache/solr/search/TestQueryWrapperFilter.java
@@ -37,6 +37,7 @@ import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.RandomApproximationQuery;
import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
@@ -46,6 +47,8 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.English;
import org.apache.lucene.util.LuceneTestCase;
+import com.carrotsearch.randomizedtesting.generators.RandomPicks;
+
public class TestQueryWrapperFilter extends LuceneTestCase {
// a filter for which other queries don't have special rewrite rules
@@ -225,7 +228,7 @@ public class TestQueryWrapperFilter extends LuceneTestCase {
final IndexSearcher searcher = new IndexSearcher(reader);
searcher.setQueryCache(null); // to still have approximations
final Query query = new QueryWrapperFilter(new RandomApproximationQuery(new TermQuery(new Term("foo", "bar")), random()));
- final Weight weight = searcher.createNormalizedWeight(query, random().nextBoolean());
+ final Weight weight = searcher.createNormalizedWeight(query, RandomPicks.randomFrom(random(), ScoreMode.values()));
final Scorer scorer = weight.scorer(reader.leaves().get(0));
assertNotNull(scorer.twoPhaseIterator());
reader.close();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java b/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
index 67a71ee..19373f0 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
@@ -39,6 +39,7 @@ import org.apache.lucene.search.LeafCollector;
import org.apache.lucene.search.LeafFieldComparator;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
@@ -109,8 +110,8 @@ public class TestRankQueryPlugin extends QParserPlugin {
return false;
}
- public Weight createWeight(IndexSearcher indexSearcher, boolean needsScores, float boost) throws IOException{
- return q.createWeight(indexSearcher, needsScores, boost);
+ public Weight createWeight(IndexSearcher indexSearcher, ScoreMode scoreMode, float boost) throws IOException{
+ return q.createWeight(indexSearcher, scoreMode, boost);
}
@Override
@@ -457,6 +458,11 @@ public class TestRankQueryPlugin extends QParserPlugin {
}
@Override
+ public float maxScore() {
+ return score;
+ }
+
+ @Override
public DocIdSetIterator iterator() {
throw new UnsupportedOperationException();
}
@@ -733,8 +739,8 @@ public class TestRankQueryPlugin extends QParserPlugin {
}
@Override
- public boolean needsScores() {
- return true;
+ public ScoreMode scoreMode() {
+ return ScoreMode.COMPLETE;
}
}
@@ -795,8 +801,8 @@ public class TestRankQueryPlugin extends QParserPlugin {
}
@Override
- public boolean needsScores() {
- return true;
+ public ScoreMode scoreMode() {
+ return ScoreMode.COMPLETE;
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4fc5a872/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
index 321da0a..58069cd 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
@@ -44,6 +44,7 @@ import org.apache.lucene.search.ConstantScoreWeight;
import org.apache.lucene.search.FieldDoc;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreMode;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
@@ -268,7 +269,7 @@ public class TestFieldCacheSortRandom extends LuceneTestCase {
}
@Override
- public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
return new ConstantScoreWeight(this, boost) {
@Override
public Scorer scorer(LeafReaderContext context) throws IOException {