You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2015/02/06 17:20:39 UTC
svn commit: r1657883 [2/3] - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/
lucene/core/src/java/org/apache/lucene/search/payloads/
lucene/core/src/java/org/apache/lucene/search/spans/ lucene/c...
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java Fri Feb 6 16:20:37 2015
@@ -284,11 +284,11 @@ public class TestBooleanQueryVisitSubsco
static class BooleanQuery2 extends BooleanQuery {
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new BooleanWeight(searcher, false) {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new BooleanWeight(searcher, needsScores, false) {
@Override
- public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
- Scorer scorer = scorer(context, acceptDocs, needsScores);
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ Scorer scorer = scorer(context, acceptDocs);
if (scorer == null) {
return null;
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java Fri Feb 6 16:20:37 2015
@@ -70,19 +70,14 @@ public class TestBooleanScorer extends L
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new Weight() {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new Weight(CrazyMustUseBulkScorerQuery.this) {
@Override
public Explanation explain(LeafReaderContext context, int doc) {
throw new UnsupportedOperationException();
}
@Override
- public Query getQuery() {
- return CrazyMustUseBulkScorerQuery.this;
- }
-
- @Override
public float getValueForNormalization() {
return 1.0f;
}
@@ -92,12 +87,12 @@ public class TestBooleanScorer extends L
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) {
throw new UnsupportedOperationException();
}
@Override
- public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) {
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) {
return new BulkScorer() {
@Override
public int score(LeafCollector collector, int min, int max) throws IOException {
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Fri Feb 6 16:20:37 2015
@@ -177,9 +177,9 @@ public class TestDisjunctionMaxQuery ext
QueryUtils.check(random(), dq, s);
assertTrue(s.getTopReaderContext() instanceof LeafReaderContext);
- final Weight dw = s.createNormalizedWeight(dq);
+ final Weight dw = s.createNormalizedWeight(dq, true);
LeafReaderContext context = (LeafReaderContext)s.getTopReaderContext();
- final Scorer ds = dw.scorer(context, context.reader().getLiveDocs(), true);
+ final Scorer ds = dw.scorer(context, context.reader().getLiveDocs());
final boolean skipOk = ds.advance(3) != DocIdSetIterator.NO_MORE_DOCS;
if (skipOk) {
fail("firsttime skipTo found a match? ... "
@@ -193,9 +193,9 @@ public class TestDisjunctionMaxQuery ext
dq.add(tq("dek", "DOES_NOT_EXIST"));
assertTrue(s.getTopReaderContext() instanceof LeafReaderContext);
QueryUtils.check(random(), dq, s);
- final Weight dw = s.createNormalizedWeight(dq);
+ final Weight dw = s.createNormalizedWeight(dq, true);
LeafReaderContext context = (LeafReaderContext)s.getTopReaderContext();
- final Scorer ds = dw.scorer(context, context.reader().getLiveDocs(), true);
+ final Scorer ds = dw.scorer(context, context.reader().getLiveDocs());
assertTrue("firsttime skipTo found no match",
ds.advance(3) != DocIdSetIterator.NO_MORE_DOCS);
assertEquals("found wrong docid", "d4", r.document(ds.docID()).get("id"));
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMinShouldMatch2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMinShouldMatch2.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMinShouldMatch2.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMinShouldMatch2.java Fri Feb 6 16:20:37 2015
@@ -125,17 +125,17 @@ public class TestMinShouldMatch2 extends
}
bq.setMinimumNumberShouldMatch(minShouldMatch);
- BooleanWeight weight = (BooleanWeight) searcher.createNormalizedWeight(bq);
+ BooleanWeight weight = (BooleanWeight) searcher.createNormalizedWeight(bq, true);
switch (mode) {
case DOC_VALUES:
return new SlowMinShouldMatchScorer(weight, reader, searcher);
case SCORER:
- return weight.scorer(reader.getContext(), null, true);
+ return weight.scorer(reader.getContext(), null);
case BULK_SCORER:
- final BulkScorer bulkScorer = weight.booleanScorer(reader.getContext(), null, true);
+ final BulkScorer bulkScorer = weight.booleanScorer(reader.getContext(), null);
if (bulkScorer == null) {
- if (weight.scorer(reader.getContext(), null, true) != null) {
+ if (weight.scorer(reader.getContext(), null) != null) {
throw new AssertionError("BooleanScorer should be applicable for this query");
}
return null;
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java Fri Feb 6 16:20:37 2015
@@ -344,7 +344,7 @@ public class TestMultiPhraseQuery extend
MultiPhraseQuery query = new MultiPhraseQuery();
query.add(new Term[] { new Term("body", "this"), new Term("body", "that") });
query.add(new Term("body", "is"));
- Weight weight = query.createWeight(searcher);
+ Weight weight = query.createWeight(searcher, true);
assertEquals(10f * 10f, weight.getValueForNormalization(), 0.001f);
writer.close();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java Fri Feb 6 16:20:37 2015
@@ -109,20 +109,15 @@ public class TestNeedsScores extends Luc
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- final Weight w = in.createWeight(searcher);
- return new Weight() {
+ public Weight createWeight(IndexSearcher searcher, final boolean needsScores) throws IOException {
+ final Weight w = in.createWeight(searcher, needsScores);
+ return new Weight(AssertNeedsScores.this) {
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return w.explain(context, doc);
}
@Override
- public Query getQuery() {
- return AssertNeedsScores.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return w.getValueForNormalization();
}
@@ -133,9 +128,9 @@ public class TestNeedsScores extends Luc
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
assertEquals("query=" + in, value, needsScores);
- return w.scorer(context, acceptDocs, needsScores);
+ return w.scorer(context, acceptDocs);
}
};
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java Fri Feb 6 16:20:37 2015
@@ -84,7 +84,7 @@ public class TestPositiveScoresOnlyColle
IndexReader ir = writer.getReader();
writer.close();
IndexSearcher searcher = newSearcher(ir);
- Weight fake = new TermQuery(new Term("fake", "weight")).createWeight(searcher);
+ Weight fake = new TermQuery(new Term("fake", "weight")).createWeight(searcher, true);
Scorer s = new SimpleScorer(fake);
TopDocsCollector<ScoreDoc> tdc = TopScoreDocCollector.create(scores.length);
Collector c = new PositiveScoresOnlyCollector(tdc);
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java Fri Feb 6 16:20:37 2015
@@ -424,14 +424,9 @@ public class TestQueryRescorer extends L
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
- return new Weight() {
-
- @Override
- public Query getQuery() {
- return FixedScoreQuery.this;
- }
+ return new Weight(FixedScoreQuery.this) {
@Override
public float getValueForNormalization() {
@@ -443,7 +438,7 @@ public class TestQueryRescorer extends L
}
@Override
- public Scorer scorer(final LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(final LeafReaderContext context, Bits acceptDocs) throws IOException {
return new Scorer(null) {
int docID = -1;
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java Fri Feb 6 16:20:37 2015
@@ -109,7 +109,7 @@ public class TestScoreCachingWrappingSco
IndexReader ir = writer.getReader();
writer.close();
IndexSearcher searcher = newSearcher(ir);
- Weight fake = new TermQuery(new Term("fake", "weight")).createWeight(searcher);
+ Weight fake = new TermQuery(new Term("fake", "weight")).createWeight(searcher, true);
Scorer s = new SimpleScorer(fake);
ScoreCachingCollector scc = new ScoreCachingCollector(scores.length);
scc.setScorer(s);
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java Fri Feb 6 16:20:37 2015
@@ -75,10 +75,10 @@ public class TestTermScorer extends Luce
Term allTerm = new Term(FIELD, "all");
TermQuery termQuery = new TermQuery(allTerm);
- Weight weight = indexSearcher.createNormalizedWeight(termQuery);
+ Weight weight = indexSearcher.createNormalizedWeight(termQuery, true);
assertTrue(indexSearcher.getTopReaderContext() instanceof LeafReaderContext);
LeafReaderContext context = (LeafReaderContext)indexSearcher.getTopReaderContext();
- BulkScorer ts = weight.bulkScorer(context, context.reader().getLiveDocs(), true);
+ BulkScorer ts = weight.bulkScorer(context, context.reader().getLiveDocs());
// we have 2 documents with the term all in them, one document for all the
// other values
final List<TestHit> docs = new ArrayList<>();
@@ -137,10 +137,10 @@ public class TestTermScorer extends Luce
Term allTerm = new Term(FIELD, "all");
TermQuery termQuery = new TermQuery(allTerm);
- Weight weight = indexSearcher.createNormalizedWeight(termQuery);
+ Weight weight = indexSearcher.createNormalizedWeight(termQuery, true);
assertTrue(indexSearcher.getTopReaderContext() instanceof LeafReaderContext);
LeafReaderContext context = (LeafReaderContext) indexSearcher.getTopReaderContext();
- Scorer ts = weight.scorer(context, context.reader().getLiveDocs(), true);
+ Scorer ts = weight.scorer(context, context.reader().getLiveDocs());
assertTrue("next did not return a doc",
ts.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
assertTrue("score is not correct", ts.score() == 1.6931472f);
@@ -156,10 +156,10 @@ public class TestTermScorer extends Luce
Term allTerm = new Term(FIELD, "all");
TermQuery termQuery = new TermQuery(allTerm);
- Weight weight = indexSearcher.createNormalizedWeight(termQuery);
+ Weight weight = indexSearcher.createNormalizedWeight(termQuery, true);
assertTrue(indexSearcher.getTopReaderContext() instanceof LeafReaderContext);
LeafReaderContext context = (LeafReaderContext) indexSearcher.getTopReaderContext();
- Scorer ts = weight.scorer(context, context.reader().getLiveDocs(), true);
+ Scorer ts = weight.scorer(context, context.reader().getLiveDocs());
assertTrue("Didn't skip", ts.advance(3) != DocIdSetIterator.NO_MORE_DOCS);
// The next doc should be doc 5
assertTrue("doc should be number 5", ts.docID() == 5);
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java Fri Feb 6 16:20:37 2015
@@ -20,8 +20,6 @@ package org.apache.lucene.search;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FloatDocValuesField;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.LeafReaderContext;
@@ -56,8 +54,9 @@ public class TestTopDocsMerge extends Lu
}
public TopDocs search(Weight weight, int topN) throws IOException {
- return search(ctx, weight, null, topN);
- }
+ TopScoreDocCollector collector = TopScoreDocCollector.create(topN);
+ search(ctx, weight, collector);
+ return collector.topDocs(); }
@Override
public String toString() {
@@ -252,9 +251,14 @@ public class TestTopDocsMerge extends Lu
}
// ... then all shards:
- final Weight w = searcher.createNormalizedWeight(query);
+ final Weight w = searcher.createNormalizedWeight(query, true);
- final TopDocs[] shardHits = new TopDocs[subSearchers.length];
+ final TopDocs[] shardHits;
+ if (sort == null) {
+ shardHits = new TopDocs[subSearchers.length];
+ } else {
+ shardHits = new TopFieldDocs[subSearchers.length];
+ }
for(int shardIDX=0;shardIDX<subSearchers.length;shardIDX++) {
final TopDocs subHits;
final ShardSearcher subSearcher = subSearchers[shardIDX];
@@ -280,9 +284,17 @@ public class TestTopDocsMerge extends Lu
// Merge:
final TopDocs mergedHits;
if (useFrom) {
- mergedHits = TopDocs.merge(sort, from, size, shardHits);
+ if (sort == null) {
+ mergedHits = TopDocs.merge(from, size, shardHits);
+ } else {
+ mergedHits = TopDocs.merge(sort, from, size, (TopFieldDocs[]) shardHits);
+ }
} else {
- mergedHits = TopDocs.merge(sort, numHits, shardHits);
+ if (sort == null) {
+ mergedHits = TopDocs.merge(numHits, shardHits);
+ } else {
+ mergedHits = TopDocs.merge(sort, numHits, (TopFieldDocs[]) shardHits);
+ }
}
if (mergedHits.scoreDocs != null) {
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java Fri Feb 6 16:20:37 2015
@@ -180,10 +180,10 @@ public class TestNearSpansOrdered extend
*/
public void testSpanNearScorerSkipTo1() throws Exception {
SpanNearQuery q = makeQuery();
- Weight w = searcher.createNormalizedWeight(q);
+ Weight w = searcher.createNormalizedWeight(q, true);
IndexReaderContext topReaderContext = searcher.getTopReaderContext();
LeafReaderContext leave = topReaderContext.leaves().get(0);
- Scorer s = w.scorer(leave, leave.reader().getLiveDocs(), true);
+ Scorer s = w.scorer(leave, leave.reader().getLiveDocs());
assertEquals(1, s.advance(1));
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java Fri Feb 6 16:20:37 2015
@@ -429,7 +429,7 @@ public class TestSpans extends LuceneTes
slop,
ordered);
- spanScorer = searcher.createNormalizedWeight(snq).scorer(ctx, ctx.reader().getLiveDocs(), true);
+ spanScorer = searcher.createNormalizedWeight(snq, true).scorer(ctx, ctx.reader().getLiveDocs());
} finally {
searcher.setSimilarity(oldSim);
}
Modified: lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java Fri Feb 6 16:20:37 2015
@@ -74,8 +74,8 @@ class DrillSidewaysQuery extends Query {
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- final Weight baseWeight = baseQuery.createWeight(searcher);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ final Weight baseWeight = baseQuery.createWeight(searcher, needsScores);
final Object[] drillDowns = new Object[drillDownQueries.length];
for(int dim=0;dim<drillDownQueries.length;dim++) {
Query query = drillDownQueries[dim];
@@ -85,22 +85,17 @@ class DrillSidewaysQuery extends Query {
} else {
// TODO: would be nice if we could say "we will do no
// scoring" here....
- drillDowns[dim] = searcher.rewrite(query).createWeight(searcher);
+ drillDowns[dim] = searcher.rewrite(query).createWeight(searcher, needsScores);
}
}
- return new Weight() {
+ return new Weight(DrillSidewaysQuery.this) {
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return baseWeight.explain(context, doc);
}
@Override
- public Query getQuery() {
- return baseQuery;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return baseWeight.getValueForNormalization();
}
@@ -111,17 +106,17 @@ class DrillSidewaysQuery extends Query {
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
// We can only run as a top scorer:
throw new UnsupportedOperationException();
}
@Override
- public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
// TODO: it could be better if we take acceptDocs
// into account instead of baseScorer?
- Scorer baseScorer = baseWeight.scorer(context, acceptDocs, needsScores);
+ Scorer baseScorer = baseWeight.scorer(context, acceptDocs);
DrillSidewaysScorer.DocsAndCost[] dims = new DrillSidewaysScorer.DocsAndCost[drillDowns.length];
int nullCount = 0;
@@ -166,7 +161,7 @@ class DrillSidewaysQuery extends Query {
dims[dim].disi = disi;
}
} else {
- DocIdSetIterator disi = ((Weight) drillDowns[dim]).scorer(context, null, needsScores);
+ DocIdSetIterator disi = ((Weight) drillDowns[dim]).scorer(context, null);
if (disi == null) {
nullCount++;
continue;
Modified: lucene/dev/branches/branch_5x/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java (original)
+++ lucene/dev/branches/branch_5x/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java Fri Feb 6 16:20:37 2015
@@ -21,6 +21,7 @@ import org.apache.lucene.search.ScoreDoc
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.search.TopFieldDocs;
import java.io.IOException;
@@ -130,7 +131,12 @@ public class TopGroups<GROUP_VALUE_TYPE>
@SuppressWarnings({"unchecked","rawtypes"})
final GroupDocs<T>[] mergedGroupDocs = new GroupDocs[numGroups];
- final TopDocs[] shardTopDocs = new TopDocs[shardGroups.length];
+ final TopDocs[] shardTopDocs;
+ if (docSort == null) {
+ shardTopDocs = new TopDocs[shardGroups.length];
+ } else {
+ shardTopDocs = new TopFieldDocs[shardGroups.length];
+ }
float totalMaxScore = Float.MIN_VALUE;
for(int groupIDX=0;groupIDX<numGroups;groupIDX++) {
@@ -157,15 +163,27 @@ public class TopGroups<GROUP_VALUE_TYPE>
}
*/
- shardTopDocs[shardIDX] = new TopDocs(shardGroupDocs.totalHits,
- shardGroupDocs.scoreDocs,
- shardGroupDocs.maxScore);
+ if (docSort == null) {
+ shardTopDocs[shardIDX] = new TopDocs(shardGroupDocs.totalHits,
+ shardGroupDocs.scoreDocs,
+ shardGroupDocs.maxScore);
+ } else {
+ shardTopDocs[shardIDX] = new TopFieldDocs(shardGroupDocs.totalHits,
+ shardGroupDocs.scoreDocs,
+ docSort.getSort(),
+ shardGroupDocs.maxScore);
+ }
maxScore = Math.max(maxScore, shardGroupDocs.maxScore);
totalHits += shardGroupDocs.totalHits;
scoreSum += shardGroupDocs.score;
}
- final TopDocs mergedTopDocs = TopDocs.merge(docSort, docOffset + docTopN, shardTopDocs);
+ final TopDocs mergedTopDocs;
+ if (docSort == null) {
+ mergedTopDocs = TopDocs.merge(docOffset + docTopN, shardTopDocs);
+ } else {
+ mergedTopDocs = TopDocs.merge(docSort, docOffset + docTopN, (TopFieldDocs[]) shardTopDocs);
+ }
// Slice;
final ScoreDoc[] mergedScoreDocs;
Modified: lucene/dev/branches/branch_5x/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/branch_5x/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Fri Feb 6 16:20:37 2015
@@ -1144,7 +1144,7 @@ public class TestGrouping extends Lucene
System.out.println("TEST: " + subSearchers.length + " shards: " + Arrays.toString(subSearchers) + " canUseIDV=" + canUseIDV);
}
// Run 1st pass collector to get top groups per shard
- final Weight w = topSearcher.createNormalizedWeight(query);
+ final Weight w = topSearcher.createNormalizedWeight(query, true);
final List<Collection<SearchGroup<BytesRef>>> shardGroups = new ArrayList<>();
List<AbstractFirstPassGroupingCollector<?>> firstPassGroupingCollectors = new ArrayList<>();
AbstractFirstPassGroupingCollector<?> firstPassCollector = null;
Modified: lucene/dev/branches/branch_5x/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/branch_5x/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Fri Feb 6 16:20:37 2015
@@ -601,7 +601,7 @@ public class HighlighterTest extends Bas
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new ToChildBlockJoinQuery(new TermQuery(
- new Term(FIELD_NAME, "parent")), parentFilter, false), Occur.MUST);
+ new Term(FIELD_NAME, "parent")), parentFilter), Occur.MUST);
booleanQuery.add(new TermQuery(new Term(FIELD_NAME, "child")), Occur.MUST);
query = booleanQuery;
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java Fri Feb 6 16:20:37 2015
@@ -125,9 +125,9 @@ class TermsIncludingScoreQuery extends Q
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- final Weight originalWeight = originalQuery.createWeight(searcher);
- return new Weight() {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ final Weight originalWeight = originalQuery.createWeight(searcher, needsScores);
+ return new Weight(TermsIncludingScoreQuery.this) {
private TermsEnum segmentTermsEnum;
@@ -152,11 +152,6 @@ class TermsIncludingScoreQuery extends Q
}
@Override
- public Query getQuery() {
- return TermsIncludingScoreQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return originalWeight.getValueForNormalization() * TermsIncludingScoreQuery.this.getBoost() * TermsIncludingScoreQuery.this.getBoost();
}
@@ -167,7 +162,7 @@ class TermsIncludingScoreQuery extends Q
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
Terms terms = context.reader().terms(field);
if (terms == null) {
return null;
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java Fri Feb 6 16:20:37 2015
@@ -61,34 +61,30 @@ public class ToChildBlockJoinQuery exten
// original, so that user does not have to .rewrite() their
// query before searching:
private final Query origParentQuery;
- private final boolean doScores;
/**
* Create a ToChildBlockJoinQuery.
*
* @param parentQuery Query that matches parent documents
* @param parentsFilter Filter identifying the parent documents.
- * @param doScores true if parent scores should be calculated
*/
- public ToChildBlockJoinQuery(Query parentQuery, BitDocIdSetFilter parentsFilter, boolean doScores) {
+ public ToChildBlockJoinQuery(Query parentQuery, BitDocIdSetFilter parentsFilter) {
super();
this.origParentQuery = parentQuery;
this.parentQuery = parentQuery;
this.parentsFilter = parentsFilter;
- this.doScores = doScores;
}
- private ToChildBlockJoinQuery(Query origParentQuery, Query parentQuery, BitDocIdSetFilter parentsFilter, boolean doScores) {
+ private ToChildBlockJoinQuery(Query origParentQuery, Query parentQuery, BitDocIdSetFilter parentsFilter) {
super();
this.origParentQuery = origParentQuery;
this.parentQuery = parentQuery;
this.parentsFilter = parentsFilter;
- this.doScores = doScores;
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new ToChildBlockJoinWeight(this, parentQuery.createWeight(searcher), parentsFilter, doScores);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new ToChildBlockJoinWeight(this, parentQuery.createWeight(searcher, needsScores), parentsFilter, needsScores);
}
/** Return our parent query. */
@@ -103,7 +99,7 @@ public class ToChildBlockJoinQuery exten
private final boolean doScores;
public ToChildBlockJoinWeight(Query joinQuery, Weight parentWeight, BitDocIdSetFilter parentsFilter, boolean doScores) {
- super();
+ super(joinQuery);
this.joinQuery = joinQuery;
this.parentWeight = parentWeight;
this.parentsFilter = parentsFilter;
@@ -111,11 +107,6 @@ public class ToChildBlockJoinQuery exten
}
@Override
- public Query getQuery() {
- return joinQuery;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return parentWeight.getValueForNormalization() * joinQuery.getBoost() * joinQuery.getBoost();
}
@@ -128,9 +119,9 @@ public class ToChildBlockJoinQuery exten
// NOTE: acceptDocs applies (and is checked) only in the
// child document space
@Override
- public Scorer scorer(LeafReaderContext readerContext, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext readerContext, Bits acceptDocs) throws IOException {
- final Scorer parentScorer = parentWeight.scorer(readerContext, null, needsScores);
+ final Scorer parentScorer = parentWeight.scorer(readerContext, null);
if (parentScorer == null) {
// No matches
@@ -334,8 +325,7 @@ public class ToChildBlockJoinQuery exten
if (parentRewrite != parentQuery) {
Query rewritten = new ToChildBlockJoinQuery(parentQuery,
parentRewrite,
- parentsFilter,
- doScores);
+ parentsFilter);
rewritten.setBoost(getBoost());
return rewritten;
} else {
@@ -354,7 +344,6 @@ public class ToChildBlockJoinQuery exten
final ToChildBlockJoinQuery other = (ToChildBlockJoinQuery) _other;
return origParentQuery.equals(other.origParentQuery) &&
parentsFilter.equals(other.parentsFilter) &&
- doScores == other.doScores &&
super.equals(other);
} else {
return false;
@@ -366,7 +355,6 @@ public class ToChildBlockJoinQuery exten
final int prime = 31;
int hash = super.hashCode();
hash = prime * hash + origParentQuery.hashCode();
- hash = prime * hash + new Boolean(doScores).hashCode();
hash = prime * hash + parentsFilter.hashCode();
return hash;
}
@@ -374,7 +362,6 @@ public class ToChildBlockJoinQuery exten
@Override
public ToChildBlockJoinQuery clone() {
return new ToChildBlockJoinQuery(origParentQuery.clone(),
- parentsFilter,
- doScores);
+ parentsFilter);
}
}
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinIndexSearcher.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinIndexSearcher.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinIndexSearcher.java Fri Feb 6 16:20:37 2015
@@ -55,7 +55,7 @@ public class ToParentBlockJoinIndexSearc
// we force the use of Scorer (not BulkScorer) to make sure
// that the scorer passed to LeafCollector.setScorer supports
// Scorer.getChildren
- Scorer scorer = weight.scorer(ctx, ctx.reader().getLiveDocs(), true);
+ Scorer scorer = weight.scorer(ctx, ctx.reader().getLiveDocs());
if (scorer != null) {
final LeafCollector leafCollector = collector.getLeafCollector(ctx);
leafCollector.setScorer(scorer);
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java Fri Feb 6 16:20:37 2015
@@ -119,8 +119,8 @@ public class ToParentBlockJoinQuery exte
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new BlockJoinWeight(this, childQuery.createWeight(searcher), parentsFilter, scoreMode);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new BlockJoinWeight(this, childQuery.createWeight(searcher, needsScores), parentsFilter, scoreMode);
}
/** Return our child query. */
@@ -135,7 +135,7 @@ public class ToParentBlockJoinQuery exte
private final ScoreMode scoreMode;
public BlockJoinWeight(Query joinQuery, Weight childWeight, BitDocIdSetFilter parentsFilter, ScoreMode scoreMode) {
- super();
+ super(joinQuery);
this.joinQuery = joinQuery;
this.childWeight = childWeight;
this.parentsFilter = parentsFilter;
@@ -143,11 +143,6 @@ public class ToParentBlockJoinQuery exte
}
@Override
- public Query getQuery() {
- return joinQuery;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return childWeight.getValueForNormalization() * joinQuery.getBoost() * joinQuery.getBoost();
}
@@ -160,9 +155,9 @@ public class ToParentBlockJoinQuery exte
// NOTE: acceptDocs applies (and is checked) only in the
// parent document space
@Override
- public Scorer scorer(LeafReaderContext readerContext, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext readerContext, Bits acceptDocs) throws IOException {
- final Scorer childScorer = childWeight.scorer(readerContext, readerContext.reader().getLiveDocs(), needsScores);
+ final Scorer childScorer = childWeight.scorer(readerContext, readerContext.reader().getLiveDocs());
if (childScorer == null) {
// No matches
return null;
@@ -188,7 +183,7 @@ public class ToParentBlockJoinQuery exte
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
- BlockJoinScorer scorer = (BlockJoinScorer) scorer(context, context.reader().getLiveDocs(), true);
+ BlockJoinScorer scorer = (BlockJoinScorer) scorer(context, context.reader().getLiveDocs());
if (scorer != null && scorer.advance(doc) == doc) {
return scorer.explain(context.docBase);
}
Modified: lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java Fri Feb 6 16:20:37 2015
@@ -190,7 +190,7 @@ public class TestBlockJoin extends Lucen
//System.out.println("TEST: now test up");
// Now join "up" (map parent hits to child docs) instead...:
- ToChildBlockJoinQuery parentJoinQuery = new ToChildBlockJoinQuery(parentQuery, parentsFilter, random().nextBoolean());
+ ToChildBlockJoinQuery parentJoinQuery = new ToChildBlockJoinQuery(parentQuery, parentsFilter);
BooleanQuery fullChildQuery = new BooleanQuery();
fullChildQuery.add(new BooleanClause(parentJoinQuery, Occur.MUST));
fullChildQuery.add(new BooleanClause(childQuery, Occur.MUST));
@@ -334,15 +334,15 @@ public class TestBlockJoin extends Lucen
TermQuery us = new TermQuery(new Term("country", "United States"));
assertEquals("@ US we have java and ruby", 2,
s.search(new ToChildBlockJoinQuery(us,
- parentsFilter, random().nextBoolean()), 10).totalHits );
+ parentsFilter), 10).totalHits );
- assertEquals("java skills in US", 1, s.search(new ToChildBlockJoinQuery(us, parentsFilter, random().nextBoolean()),
+ assertEquals("java skills in US", 1, s.search(new ToChildBlockJoinQuery(us, parentsFilter),
skill("java"), 10).totalHits );
BooleanQuery rubyPython = new BooleanQuery();
rubyPython.add(new TermQuery(new Term("skill", "ruby")), Occur.SHOULD);
rubyPython.add(new TermQuery(new Term("skill", "python")), Occur.SHOULD);
- assertEquals("ruby skills in US", 1, s.search(new ToChildBlockJoinQuery(us, parentsFilter, random().nextBoolean()),
+ assertEquals("ruby skills in US", 1, s.search(new ToChildBlockJoinQuery(us, parentsFilter),
new QueryWrapperFilter(rubyPython), 10).totalHits );
r.close();
@@ -878,7 +878,7 @@ public class TestBlockJoin extends Lucen
}
// Maps parent query to child docs:
- final ToChildBlockJoinQuery parentJoinQuery2 = new ToChildBlockJoinQuery(parentQuery2, parentsFilter, random().nextBoolean());
+ final ToChildBlockJoinQuery parentJoinQuery2 = new ToChildBlockJoinQuery(parentQuery2, parentsFilter);
// To run against the block-join index:
final Query childJoinQuery2;
@@ -1147,8 +1147,8 @@ public class TestBlockJoin extends Lucen
new TermQuery(new Term("parent", "1"))));
ToParentBlockJoinQuery q = new ToParentBlockJoinQuery(tq, parentFilter, ScoreMode.Avg);
- Weight weight = s.createNormalizedWeight(q);
- DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), null, true);
+ Weight weight = s.createNormalizedWeight(q, true);
+ DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), null);
assertEquals(1, disi.advance(1));
r.close();
dir.close();
@@ -1181,8 +1181,8 @@ public class TestBlockJoin extends Lucen
new TermQuery(new Term("isparent", "yes"))));
ToParentBlockJoinQuery q = new ToParentBlockJoinQuery(tq, parentFilter, ScoreMode.Avg);
- Weight weight = s.createNormalizedWeight(q);
- DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), null, true);
+ Weight weight = s.createNormalizedWeight(q, true);
+ DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), null);
assertEquals(2, disi.advance(0));
r.close();
dir.close();
@@ -1507,7 +1507,7 @@ public class TestBlockJoin extends Lucen
Query parentQuery = new TermQuery(new Term("parent", "2"));
- ToChildBlockJoinQuery parentJoinQuery = new ToChildBlockJoinQuery(parentQuery, parentsFilter, random().nextBoolean());
+ ToChildBlockJoinQuery parentJoinQuery = new ToChildBlockJoinQuery(parentQuery, parentsFilter);
TopDocs topdocs = s.search(parentJoinQuery, 3);
assertEquals(1, topdocs.totalHits);
Modified: lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoinValidation.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoinValidation.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoinValidation.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoinValidation.java Fri Feb 6 16:20:37 2015
@@ -107,7 +107,7 @@ public class TestBlockJoinValidation ext
public void testNextDocValidationForToChildBjq() throws Exception {
Query parentQueryWithRandomChild = createParentsQueryWithOneChild(getRandomChildNumber(0));
- ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter, false);
+ ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter);
thrown.expect(IllegalStateException.class);
thrown.expectMessage(ToChildBlockJoinQuery.INVALID_QUERY_MESSAGE);
indexSearcher.search(blockJoinQuery, 1);
@@ -117,7 +117,7 @@ public class TestBlockJoinValidation ext
public void testValidationForToChildBjqWithChildFilterQuery() throws Exception {
Query parentQueryWithRandomChild = createParentQuery();
- ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter, false);
+ ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter);
Filter childFilter = new QueryWrapperFilter(new TermQuery(new Term("common_field", "1")));
thrown.expect(IllegalStateException.class);
thrown.expectMessage(ToChildBlockJoinQuery.ILLEGAL_ADVANCE_ON_PARENT);
@@ -131,7 +131,7 @@ public class TestBlockJoinValidation ext
// in BJQ must be greater than child number in Boolean clause
int nextRandomChildNumber = getRandomChildNumber(randomChildNumber);
Query parentQueryWithRandomChild = createParentsQueryWithOneChild(nextRandomChildNumber);
- ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter, false);
+ ToChildBlockJoinQuery blockJoinQuery = new ToChildBlockJoinQuery(parentQueryWithRandomChild, parentsFilter);
// advance() method is used by ConjunctionScorer, so we need to create Boolean conjunction query
BooleanQuery conjunctionQuery = new BooleanQuery();
WildcardQuery childQuery = new WildcardQuery(new Term("child", createFieldValue(randomChildNumber)));
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/BoostingQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/BoostingQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/BoostingQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/BoostingQuery.java Fri Feb 6 16:20:37 2015
@@ -54,8 +54,8 @@ public class BoostingQuery extends Query
public Query rewrite(IndexReader reader) throws IOException {
BooleanQuery result = new BooleanQuery() {
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new BooleanWeight(searcher, false) {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new BooleanWeight(searcher, needsScores, false) {
@Override
public float coord(int overlap, int max) {
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java Fri Feb 6 16:20:37 2015
@@ -186,21 +186,16 @@ public class CustomScoreQuery extends Qu
boolean qStrict;
float queryWeight;
- public CustomWeight(IndexSearcher searcher) throws IOException {
- this.subQueryWeight = subQuery.createWeight(searcher);
+ public CustomWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ super(CustomScoreQuery.this);
+ this.subQueryWeight = subQuery.createWeight(searcher, needsScores);
this.valSrcWeights = new Weight[scoringQueries.length];
for(int i = 0; i < scoringQueries.length; i++) {
- this.valSrcWeights[i] = scoringQueries[i].createWeight(searcher);
+ this.valSrcWeights[i] = scoringQueries[i].createWeight(searcher, needsScores);
}
this.qStrict = strict;
}
- /*(non-Javadoc) @see org.apache.lucene.search.Weight#getQuery() */
- @Override
- public Query getQuery() {
- return CustomScoreQuery.this;
- }
-
@Override
public float getValueForNormalization() throws IOException {
float sum = subQueryWeight.getValueForNormalization();
@@ -234,14 +229,14 @@ public class CustomScoreQuery extends Qu
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
- Scorer subQueryScorer = subQueryWeight.scorer(context, acceptDocs, needsScores);
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ Scorer subQueryScorer = subQueryWeight.scorer(context, acceptDocs);
if (subQueryScorer == null) {
return null;
}
Scorer[] valSrcScorers = new Scorer[valSrcWeights.length];
for(int i = 0; i < valSrcScorers.length; i++) {
- valSrcScorers[i] = valSrcWeights[i].scorer(context, acceptDocs, needsScores);
+ valSrcScorers[i] = valSrcWeights[i].scorer(context, acceptDocs);
}
return new CustomScorer(CustomScoreQuery.this.getCustomScoreProvider(context), this, queryWeight, subQueryScorer, valSrcScorers);
}
@@ -350,8 +345,8 @@ public class CustomScoreQuery extends Qu
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new CustomWeight(searcher);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new CustomWeight(searcher, needsScores);
}
/**
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java Fri Feb 6 16:20:37 2015
@@ -62,8 +62,8 @@ public class BoostedQuery extends Query
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return new BoostedQuery.BoostedWeight(searcher);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return new BoostedQuery.BoostedWeight(searcher, needsScores);
}
private class BoostedWeight extends Weight {
@@ -71,19 +71,15 @@ public class BoostedQuery extends Query
Weight qWeight;
Map fcontext;
- public BoostedWeight(IndexSearcher searcher) throws IOException {
+ public BoostedWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ super(BoostedQuery.this);
this.searcher = searcher;
- this.qWeight = q.createWeight(searcher);
+ this.qWeight = q.createWeight(searcher, needsScores);
this.fcontext = ValueSource.newContext(searcher);
boostVal.createWeight(fcontext,searcher);
}
@Override
- public Query getQuery() {
- return BoostedQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
float sum = qWeight.getValueForNormalization();
sum *= getBoost() * getBoost();
@@ -97,8 +93,8 @@ public class BoostedQuery extends Query
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
- Scorer subQueryScorer = qWeight.scorer(context, acceptDocs, needsScores);
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ Scorer subQueryScorer = qWeight.scorer(context, acceptDocs);
if (subQueryScorer == null) {
return null;
}
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java Fri Feb 6 16:20:37 2015
@@ -66,17 +66,13 @@ public class FunctionQuery extends Query
protected final Map context;
public FunctionWeight(IndexSearcher searcher) throws IOException {
+ super(FunctionQuery.this);
this.searcher = searcher;
this.context = ValueSource.newContext(searcher);
func.createWeight(context, searcher);
}
@Override
- public Query getQuery() {
- return FunctionQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
@@ -89,13 +85,13 @@ public class FunctionQuery extends Query
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
return new AllScorer(context, acceptDocs, this, queryWeight);
}
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
- return ((AllScorer)scorer(context, context.reader().getLiveDocs(), true)).explain(doc);
+ return ((AllScorer)scorer(context, context.reader().getLiveDocs())).explain(doc);
}
}
@@ -181,7 +177,7 @@ public class FunctionQuery extends Query
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
return new FunctionQuery.FunctionWeight(searcher);
}
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java Fri Feb 6 16:20:37 2015
@@ -69,7 +69,7 @@ public class QueryValueSource extends Va
@Override
public void createWeight(Map context, IndexSearcher searcher) throws IOException {
- Weight w = searcher.createNormalizedWeight(q);
+ Weight w = searcher.createNormalizedWeight(q, true);
context.put(this, w);
}
}
@@ -123,7 +123,7 @@ class QueryDocValues extends FloatDocVal
try {
if (doc < lastDocRequested) {
if (noMatches) return defVal;
- scorer = weight.scorer(readerContext, acceptDocs, true);
+ scorer = weight.scorer(readerContext, acceptDocs);
if (scorer==null) {
noMatches = true;
return defVal;
@@ -154,7 +154,7 @@ class QueryDocValues extends FloatDocVal
try {
if (doc < lastDocRequested) {
if (noMatches) return false;
- scorer = weight.scorer(readerContext, acceptDocs, true);
+ scorer = weight.scorer(readerContext, acceptDocs);
scorerDoc = -1;
if (scorer==null) {
noMatches = true;
@@ -212,7 +212,7 @@ class QueryDocValues extends FloatDocVal
mval.exists = false;
return;
}
- scorer = weight.scorer(readerContext, acceptDocs, true);
+ scorer = weight.scorer(readerContext, acceptDocs);
scorerDoc = -1;
if (scorer==null) {
noMatches = true;
Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java Fri Feb 6 16:20:37 2015
@@ -188,7 +188,7 @@ public class TermAutomatonQuery extends
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
IndexReaderContext context = searcher.getTopReaderContext();
Map<Integer,TermContext> termStates = new HashMap<>();
@@ -347,6 +347,7 @@ public class TermAutomatonQuery extends
private final Similarity similarity;
public TermAutomatonWeight(Automaton automaton, IndexSearcher searcher, Map<Integer,TermContext> termStates) throws IOException {
+ super(TermAutomatonQuery.this);
this.automaton = automaton;
this.searcher = searcher;
this.termStates = termStates;
@@ -370,11 +371,6 @@ public class TermAutomatonQuery extends
}
@Override
- public Query getQuery() {
- return TermAutomatonQuery.this;
- }
-
- @Override
public float getValueForNormalization() {
return stats.getValueForNormalization();
}
@@ -385,7 +381,7 @@ public class TermAutomatonQuery extends
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
// Initialize the enums; null for a given slot means that term didn't appear in this reader
EnumAndScorer[] enums = new EnumAndScorer[idToTerm.size()];
Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java Fri Feb 6 16:20:37 2015
@@ -99,13 +99,13 @@ public class TestSlowCollationMethods ex
});
final Sort sort = new Sort(sf);
- final TopDocs docs1 = searcher.search(TermRangeQuery.newStringRange("field", null, splitDoc, true, true), null, numDocs/(1+random().nextInt(4)), sort);
+ final TopFieldDocs docs1 = searcher.search(TermRangeQuery.newStringRange("field", null, splitDoc, true, true), null, numDocs/(1+random().nextInt(4)), sort);
doCheckSorting(docs1);
- final TopDocs docs2 = searcher.search(TermRangeQuery.newStringRange("field", splitDoc, null, true, true), null, numDocs/(1+random().nextInt(4)), sort);
+ final TopFieldDocs docs2 = searcher.search(TermRangeQuery.newStringRange("field", splitDoc, null, true, true), null, numDocs/(1+random().nextInt(4)), sort);
doCheckSorting(docs2);
- final TopDocs docs = TopDocs.merge(sort, numDocs/(1+random().nextInt(4)), new TopDocs[]{docs1, docs2});
+ final TopFieldDocs docs = TopDocs.merge(sort, numDocs/(1+random().nextInt(4)), new TopFieldDocs[]{docs1, docs2});
doCheckSorting(docs);
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingIndexSearcher.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingIndexSearcher.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingIndexSearcher.java Fri Feb 6 16:20:37 2015
@@ -55,8 +55,8 @@ public class AssertingIndexSearcher exte
/** Ensures, that the returned {@code Weight} is not normalized again, which may produce wrong scores. */
@Override
- public Weight createNormalizedWeight(Query query) throws IOException {
- final Weight w = super.createNormalizedWeight(query);
+ public Weight createNormalizedWeight(Query query, boolean needsScores) throws IOException {
+ final Weight w = super.createNormalizedWeight(query, needsScores);
return new AssertingWeight(random, w) {
@Override
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java Fri Feb 6 16:20:37 2015
@@ -42,8 +42,8 @@ public class AssertingQuery extends Quer
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
- return AssertingWeight.wrap(new Random(random.nextLong()), in.createWeight(searcher));
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
+ return AssertingWeight.wrap(new Random(random.nextLong()), in.createWeight(searcher, needsScores));
}
@Override
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java Fri Feb 6 16:20:37 2015
@@ -33,6 +33,7 @@ class AssertingWeight extends Weight {
final Weight in;
AssertingWeight(Random random, Weight in) {
+ super(in.getQuery());
this.random = random;
this.in = in;
}
@@ -43,11 +44,6 @@ class AssertingWeight extends Weight {
}
@Override
- public Query getQuery() {
- return in.getQuery();
- }
-
- @Override
public float getValueForNormalization() throws IOException {
return in.getValueForNormalization();
}
@@ -58,15 +54,15 @@ class AssertingWeight extends Weight {
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
- final Scorer inScorer = in.scorer(context, acceptDocs, needsScores);
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ final Scorer inScorer = in.scorer(context, acceptDocs);
assert inScorer == null || inScorer.docID() == -1;
return AssertingScorer.wrap(new Random(random.nextLong()), inScorer);
}
@Override
- public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
- BulkScorer inScorer = in.bulkScorer(context, acceptDocs, needsScores);
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ BulkScorer inScorer = in.bulkScorer(context, acceptDocs);
if (inScorer == null) {
return null;
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java Fri Feb 6 16:20:37 2015
@@ -262,9 +262,9 @@ public class QueryUtils {
lastDoc[0] = doc;
try {
if (scorer == null) {
- Weight w = s.createNormalizedWeight(q);
+ Weight w = s.createNormalizedWeight(q, true);
LeafReaderContext context = readerContextArray.get(leafPtr);
- scorer = w.scorer(context, context.reader().getLiveDocs(), true);
+ scorer = w.scorer(context, context.reader().getLiveDocs());
}
int op = order[(opidx[0]++) % order.length];
@@ -314,9 +314,9 @@ public class QueryUtils {
final LeafReader previousReader = lastReader[0];
IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader);
indexSearcher.setSimilarity(s.getSimilarity());
- Weight w = indexSearcher.createNormalizedWeight(q);
+ Weight w = indexSearcher.createNormalizedWeight(q, true);
LeafReaderContext ctx = (LeafReaderContext)indexSearcher.getTopReaderContext();
- Scorer scorer = w.scorer(ctx, ctx.reader().getLiveDocs(), true);
+ Scorer scorer = w.scorer(ctx, ctx.reader().getLiveDocs());
if (scorer != null) {
boolean more = scorer.advance(lastDoc[0] + 1) != DocIdSetIterator.NO_MORE_DOCS;
Assert.assertFalse("query's last doc was "+ lastDoc[0] +" but skipTo("+(lastDoc[0]+1)+") got to "+scorer.docID(),more);
@@ -336,9 +336,9 @@ public class QueryUtils {
final LeafReader previousReader = lastReader[0];
IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader, false);
indexSearcher.setSimilarity(s.getSimilarity());
- Weight w = indexSearcher.createNormalizedWeight(q);
+ Weight w = indexSearcher.createNormalizedWeight(q, true);
LeafReaderContext ctx = previousReader.getContext();
- Scorer scorer = w.scorer(ctx, ctx.reader().getLiveDocs(), true);
+ Scorer scorer = w.scorer(ctx, ctx.reader().getLiveDocs());
if (scorer != null) {
boolean more = scorer.advance(lastDoc[0] + 1) != DocIdSetIterator.NO_MORE_DOCS;
Assert.assertFalse("query's last doc was "+ lastDoc[0] +" but skipTo("+(lastDoc[0]+1)+") got to "+scorer.docID(),more);
@@ -368,8 +368,8 @@ public class QueryUtils {
try {
long startMS = System.currentTimeMillis();
for (int i=lastDoc[0]+1; i<=doc; i++) {
- Weight w = s.createNormalizedWeight(q);
- Scorer scorer = w.scorer(context.get(leafPtr), liveDocs, true);
+ Weight w = s.createNormalizedWeight(q, true);
+ Scorer scorer = w.scorer(context.get(leafPtr), liveDocs);
Assert.assertTrue("query collected "+doc+" but skipTo("+i+") says no more docs!",scorer.advance(i) != DocIdSetIterator.NO_MORE_DOCS);
Assert.assertEquals("query collected "+doc+" but skipTo("+i+") got to "+scorer.docID(),doc,scorer.docID());
float skipToScore = scorer.score();
@@ -401,8 +401,8 @@ public class QueryUtils {
final LeafReader previousReader = lastReader[0];
IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader);
indexSearcher.setSimilarity(s.getSimilarity());
- Weight w = indexSearcher.createNormalizedWeight(q);
- Scorer scorer = w.scorer((LeafReaderContext)indexSearcher.getTopReaderContext(), previousReader.getLiveDocs(), true);
+ Weight w = indexSearcher.createNormalizedWeight(q, true);
+ Scorer scorer = w.scorer((LeafReaderContext)indexSearcher.getTopReaderContext(), previousReader.getLiveDocs());
if (scorer != null) {
boolean more = scorer.advance(lastDoc[0] + 1) != DocIdSetIterator.NO_MORE_DOCS;
Assert.assertFalse("query's last doc was "+ lastDoc[0] +" but skipTo("+(lastDoc[0]+1)+") got to "+scorer.docID(),more);
@@ -422,8 +422,8 @@ public class QueryUtils {
final LeafReader previousReader = lastReader[0];
IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader);
indexSearcher.setSimilarity(s.getSimilarity());
- Weight w = indexSearcher.createNormalizedWeight(q);
- Scorer scorer = w.scorer((LeafReaderContext)indexSearcher.getTopReaderContext(), previousReader.getLiveDocs(), true);
+ Weight w = indexSearcher.createNormalizedWeight(q, true);
+ Scorer scorer = w.scorer((LeafReaderContext)indexSearcher.getTopReaderContext(), previousReader.getLiveDocs());
if (scorer != null) {
boolean more = scorer.advance(lastDoc[0] + 1) != DocIdSetIterator.NO_MORE_DOCS;
Assert.assertFalse("query's last doc was "+ lastDoc[0] +" but skipTo("+(lastDoc[0]+1)+") got to "+scorer.docID(),more);
@@ -433,10 +433,10 @@ public class QueryUtils {
/** Check that the scorer and bulk scorer advance consistently. */
public static void checkBulkScorerSkipTo(Random r, Query query, IndexSearcher searcher) throws IOException {
- Weight weight = searcher.createNormalizedWeight(query);
+ Weight weight = searcher.createNormalizedWeight(query, true);
for (LeafReaderContext context : searcher.getIndexReader().leaves()) {
- final Scorer scorer = weight.scorer(context, context.reader().getLiveDocs(), true);
- final BulkScorer bulkScorer = weight.bulkScorer(context, context.reader().getLiveDocs(), true);
+ final Scorer scorer = weight.scorer(context, context.reader().getLiveDocs());
+ final BulkScorer bulkScorer = weight.bulkScorer(context, context.reader().getLiveDocs());
if (scorer == null && bulkScorer == null) {
continue;
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java Fri Feb 6 16:20:37 2015
@@ -360,7 +360,7 @@ public abstract class ShardSearchingTest
}
// Merge:
- return TopDocs.merge(null, numHits, shardHits);
+ return TopDocs.merge(numHits, shardHits);
}
public TopDocs localSearch(Query query, int numHits) throws IOException {
@@ -369,6 +369,9 @@ public abstract class ShardSearchingTest
@Override
public TopDocs searchAfter(ScoreDoc after, Query query, int numHits) throws IOException {
+ if (after == null) {
+ return super.searchAfter(after, query, numHits);
+ }
final TopDocs[] shardHits = new TopDocs[nodeVersions.length];
// results are merged in that order: score, shardIndex, doc. therefore we set
// after to after.score and depending on the nodeID we set doc to either:
@@ -412,7 +415,7 @@ public abstract class ShardSearchingTest
}
// Merge:
- return TopDocs.merge(null, numHits, shardHits);
+ return TopDocs.merge(numHits, shardHits);
}
public TopDocs localSearchAfter(ScoreDoc after, Query query, int numHits) throws IOException {
@@ -422,19 +425,19 @@ public abstract class ShardSearchingTest
@Override
public TopFieldDocs search(Query query, int numHits, Sort sort) throws IOException {
assert sort != null;
- final TopDocs[] shardHits = new TopDocs[nodeVersions.length];
+ final TopFieldDocs[] shardHits = new TopFieldDocs[nodeVersions.length];
for(int nodeID=0;nodeID<nodeVersions.length;nodeID++) {
if (nodeID == myNodeID) {
// My node; run using local shard searcher we
// already aquired:
shardHits[nodeID] = localSearch(query, numHits, sort);
} else {
- shardHits[nodeID] = searchNode(nodeID, nodeVersions, query, sort, numHits, null);
+ shardHits[nodeID] = (TopFieldDocs) searchNode(nodeID, nodeVersions, query, sort, numHits, null);
}
}
// Merge:
- return (TopFieldDocs) TopDocs.merge(sort, numHits, shardHits);
+ return TopDocs.merge(sort, numHits, shardHits);
}
public TopFieldDocs localSearch(Query query, int numHits, Sort sort) throws IOException {
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java Fri Feb 6 16:20:37 2015
@@ -133,7 +133,7 @@ class ChildDocTransformer extends Transf
try {
Query parentQuery = idFt.getFieldQuery(null, idField, parentIdExt);
- Query query = new ToChildBlockJoinQuery(parentQuery, parentsFilter, false);
+ Query query = new ToChildBlockJoinQuery(parentQuery, parentsFilter);
DocList children = context.searcher.getDocList(query, childFilterQuery, new Sort(), 0, limit);
if(children.matches() > 0) {
DocIterator i = children.iterator();
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java Fri Feb 6 16:20:37 2015
@@ -318,6 +318,7 @@ class SpatialDistanceQuery extends Exten
protected Map lonContext;
public SpatialWeight(IndexSearcher searcher) throws IOException {
+ super(SpatialDistanceQuery.this);
this.searcher = searcher;
this.latContext = ValueSource.newContext(searcher);
this.lonContext = ValueSource.newContext(searcher);
@@ -326,11 +327,6 @@ class SpatialDistanceQuery extends Exten
}
@Override
- public Query getQuery() {
- return SpatialDistanceQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
@@ -343,13 +339,13 @@ class SpatialDistanceQuery extends Exten
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
return new SpatialScorer(context, acceptDocs, this, queryWeight);
}
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
- return ((SpatialScorer)scorer(context, context.reader().getLiveDocs(), true)).explain(doc);
+ return ((SpatialScorer)scorer(context, context.reader().getLiveDocs())).explain(doc);
}
}
@@ -545,7 +541,7 @@ class SpatialDistanceQuery extends Exten
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
// if we were supposed to use bboxQuery, then we should have been rewritten using that query
assert bboxQuery == null;
return new SpatialWeight(searcher);
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java Fri Feb 6 16:20:37 2015
@@ -80,7 +80,7 @@ public class ExportQParserPlugin extends
}
public Weight createWeight(IndexSearcher searcher) throws IOException {
- return mainQuery.createWeight(searcher);
+ return mainQuery.createWeight(searcher, true);
}
public Query rewrite(IndexReader reader) throws IOException {
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java Fri Feb 6 16:20:37 2015
@@ -211,7 +211,7 @@ class JoinQuery extends Query {
}
@Override
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
return new JoinQueryWeight((SolrIndexSearcher)searcher);
}
@@ -225,6 +225,7 @@ class JoinQuery extends Query {
ResponseBuilder rb;
public JoinQueryWeight(SolrIndexSearcher searcher) {
+ super(JoinQuery.this);
this.fromSearcher = searcher;
SolrRequestInfo info = SolrRequestInfo.getRequestInfo();
if (info != null) {
@@ -282,11 +283,6 @@ class JoinQuery extends Query {
}
@Override
- public Query getQuery() {
- return JoinQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
@@ -304,7 +300,7 @@ class JoinQuery extends Query {
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
if (filter == null) {
boolean debug = rb != null && rb.isDebug();
long start = debug ? System.currentTimeMillis() : 0;
@@ -573,7 +569,7 @@ class JoinQuery extends Query {
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
- Scorer scorer = scorer(context, context.reader().getLiveDocs(), true);
+ Scorer scorer = scorer(context, context.reader().getLiveDocs());
boolean exists = scorer.advance(doc) == doc;
ComplexExplanation result = new ComplexExplanation();
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java Fri Feb 6 16:20:37 2015
@@ -174,8 +174,8 @@ public class ReRankQParserPlugin extends
}
- public Weight createWeight(IndexSearcher searcher) throws IOException{
- return new ReRankWeight(mainQuery, reRankQuery, reRankWeight, searcher);
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException{
+ return new ReRankWeight(mainQuery, reRankQuery, reRankWeight, searcher, needsScores);
}
}
@@ -185,23 +185,20 @@ public class ReRankQParserPlugin extends
private Weight mainWeight;
private double reRankWeight;
- public ReRankWeight(Query mainQuery, Query reRankQuery, double reRankWeight, IndexSearcher searcher) throws IOException {
+ public ReRankWeight(Query mainQuery, Query reRankQuery, double reRankWeight, IndexSearcher searcher, boolean needsScores) throws IOException {
+ super(mainQuery);
this.reRankQuery = reRankQuery;
this.searcher = searcher;
this.reRankWeight = reRankWeight;
- this.mainWeight = mainQuery.createWeight(searcher);
+ this.mainWeight = mainQuery.createWeight(searcher, needsScores);
}
public float getValueForNormalization() throws IOException {
return mainWeight.getValueForNormalization();
}
- public Scorer scorer(LeafReaderContext context, Bits bits, boolean needsScores) throws IOException {
- return mainWeight.scorer(context, bits, needsScores);
- }
-
- public Query getQuery() {
- return mainWeight.getQuery();
+ public Scorer scorer(LeafReaderContext context, Bits bits) throws IOException {
+ return mainWeight.scorer(context, bits);
}
public void normalize(float norm, float topLevelBoost) {
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/SolrConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/SolrConstantScoreQuery.java?rev=1657883&r1=1657882&r2=1657883&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/SolrConstantScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/SolrConstantScoreQuery.java Fri Feb 6 16:20:37 2015
@@ -96,17 +96,13 @@ public class SolrConstantScoreQuery exte
private Map context;
public ConstantWeight(IndexSearcher searcher) throws IOException {
+ super(SolrConstantScoreQuery.this);
this.context = ValueSource.newContext(searcher);
if (filter instanceof SolrFilter)
((SolrFilter)filter).createWeight(context, searcher);
}
@Override
- public Query getQuery() {
- return SolrConstantScoreQuery.this;
- }
-
- @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
@@ -119,7 +115,7 @@ public class SolrConstantScoreQuery exte
}
@Override
- public Scorer scorer(LeafReaderContext context, Bits acceptDocs, boolean needsScores) throws IOException {
+ public Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
return new ConstantScorer(context, this, queryWeight, acceptDocs);
}
@@ -203,7 +199,7 @@ public class SolrConstantScoreQuery exte
}
@Override
- public Weight createWeight(IndexSearcher searcher) {
+ public Weight createWeight(IndexSearcher searcher, boolean needsScores) {
try {
return new SolrConstantScoreQuery.ConstantWeight(searcher);
} catch (IOException e) {