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/01/15 11:19:30 UTC
svn commit: r1652034 [2/3] - in /lucene/dev/branches/lucene_solr_5_0: ./
lucene/ lucene/benchmark/
lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/
lucene/core/src/test/org/...
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanCoord.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanCoord.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanCoord.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanCoord.java Thu Jan 15 10:19:28 2015
@@ -712,34 +712,27 @@ public class TestBooleanCoord extends Lu
assertEquals(0, scorer.nextDoc());
assertEquals(expected, scorer.score(), 0.0001f);
- // test out-of-order (if supported)
- if (weight.scoresDocsOutOfOrder()) {
- final AtomicBoolean seen = new AtomicBoolean(false);
- BulkScorer bulkScorer = weight.bulkScorer(reader.leaves().get(0), false, null);
- assertNotNull(bulkScorer);
- bulkScorer.score(new LeafCollector() {
- Scorer scorer;
-
- @Override
- public void setScorer(Scorer scorer) throws IOException {
- this.scorer = scorer;
- }
-
- @Override
- public void collect(int doc) throws IOException {
- assertFalse(seen.get());
- assertEquals(0, doc);
- assertEquals(expected, scorer.score(), 0.0001f);
- seen.set(true);
- }
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
- }, 1);
- assertTrue(seen.get());
- }
+ // test bulk scorer
+ final AtomicBoolean seen = new AtomicBoolean(false);
+ BulkScorer bulkScorer = weight.bulkScorer(reader.leaves().get(0), null);
+ assertNotNull(bulkScorer);
+ bulkScorer.score(new LeafCollector() {
+ Scorer scorer;
+
+ @Override
+ public void setScorer(Scorer scorer) throws IOException {
+ this.scorer = scorer;
+ }
+
+ @Override
+ public void collect(int doc) throws IOException {
+ assertFalse(seen.get());
+ assertEquals(0, doc);
+ assertEquals(expected, scorer.score(), 0.0001f);
+ seen.set(true);
+ }
+ }, 1);
+ assertTrue(seen.get());
// test the explanation
Explanation expl = weight.explain(reader.leaves().get(0), 0);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java Thu Jan 15 10:19:28 2015
@@ -93,7 +93,7 @@ public class TestBooleanMinShouldMatch e
assertEquals("result count", expected, h.length);
//System.out.println("TEST: now check");
// bs2
- TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true);
+ TopScoreDocCollector collector = TopScoreDocCollector.create(1000);
s.search(q, collector);
ScoreDoc[] h2 = collector.topDocs().scoreDocs;
if (expected != h2.length) {
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java Thu Jan 15 10:19:28 2015
@@ -182,7 +182,7 @@ public class TestBooleanOr extends Lucen
Weight w = s.createNormalizedWeight(bq);
assertEquals(1, s.getIndexReader().leaves().size());
- BulkScorer scorer = w.bulkScorer(s.getIndexReader().leaves().get(0), false, null);
+ BulkScorer scorer = w.bulkScorer(s.getIndexReader().leaves().get(0), null);
final FixedBitSet hits = new FixedBitSet(docCount);
final AtomicInteger end = new AtomicInteger();
@@ -193,11 +193,6 @@ public class TestBooleanOr extends Lucen
assertTrue("collected doc=" + doc + " beyond max=" + end, doc < end.intValue());
hits.set(doc);
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
};
while (end.intValue() < docCount) {
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java Thu Jan 15 10:19:28 2015
@@ -314,7 +314,7 @@ public class TestBooleanQuery extends Lu
SpanQuery sq2 = new SpanTermQuery(new Term(FIELD, "clckwork"));
query.add(sq1, BooleanClause.Occur.SHOULD);
query.add(sq2, BooleanClause.Occur.SHOULD);
- TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true);
+ TopScoreDocCollector collector = TopScoreDocCollector.create(1000);
searcher.search(query, collector);
hits = collector.topDocs().scoreDocs.length;
for (ScoreDoc scoreDoc : collector.topDocs().scoreDocs){
@@ -326,32 +326,6 @@ public class TestBooleanQuery extends Lu
directory.close();
}
- // LUCENE-5487
- public void testInOrderWithMinShouldMatch() throws Exception {
- Directory dir = newDirectory();
- RandomIndexWriter w = new RandomIndexWriter(random(), dir);
- Document doc = new Document();
- doc.add(newTextField("field", "some text here", Field.Store.NO));
- w.addDocument(doc);
- IndexReader r = w.getReader();
- w.close();
- IndexSearcher s = new IndexSearcher(r) {
- @Override
- protected void search(List<LeafReaderContext> leaves, Weight weight, Collector collector) throws IOException {
- assertEquals(-1, collector.getClass().getSimpleName().indexOf("OutOfOrder"));
- super.search(leaves, weight, collector);
- }
- };
- BooleanQuery bq = new BooleanQuery();
- bq.add(new TermQuery(new Term("field", "some")), BooleanClause.Occur.SHOULD);
- bq.add(new TermQuery(new Term("field", "text")), BooleanClause.Occur.SHOULD);
- bq.add(new TermQuery(new Term("field", "here")), BooleanClause.Occur.SHOULD);
- bq.setMinimumNumberShouldMatch(2);
- s.search(bq, 10);
- r.close();
- dir.close();
- }
-
public void testOneClauseRewriteOptimization() throws Exception {
final float BOOST = 3.5F;
final String FIELD = "content";
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanQueryVisitSubscorers.java Thu Jan 15 10:19:28 2015
@@ -36,13 +36,17 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.search.BooleanQuery.BooleanWeight;
import org.apache.lucene.search.Scorer.ChildScorer;
+import org.apache.lucene.search.Weight.DefaultBulkScorer;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.Bits;
import org.apache.lucene.util.LuceneTestCase;
// TODO: refactor to a base class, that collects freqs from the scorer tree
// and test all queries with it
public class TestBooleanQueryVisitSubscorers extends LuceneTestCase {
+
Analyzer analyzer;
IndexReader reader;
IndexSearcher searcher;
@@ -64,7 +68,9 @@ public class TestBooleanQueryVisitSubsco
writer.addDocument(doc("nutch", "nutch is an internet search engine with web crawler and is using lucene and hadoop"));
reader = writer.getReader();
writer.close();
- searcher = newSearcher(reader);
+ // we do not use newSearcher because the assertingXXX layers break
+ // the toString representations we are relying on
+ searcher = new IndexSearcher(reader);
}
@Override
@@ -75,7 +81,7 @@ public class TestBooleanQueryVisitSubsco
}
public void testDisjunctions() throws IOException {
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery2 bq = new BooleanQuery2();
bq.add(new TermQuery(new Term(F1, "lucene")), BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term(F2, "lucene")), BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term(F2, "search")), BooleanClause.Occur.SHOULD);
@@ -87,9 +93,9 @@ public class TestBooleanQueryVisitSubsco
}
public void testNestedDisjunctions() throws IOException {
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery2 bq = new BooleanQuery2();
bq.add(new TermQuery(new Term(F1, "lucene")), BooleanClause.Occur.SHOULD);
- BooleanQuery bq2 = new BooleanQuery();
+ BooleanQuery2 bq2 = new BooleanQuery2();
bq2.add(new TermQuery(new Term(F2, "lucene")), BooleanClause.Occur.SHOULD);
bq2.add(new TermQuery(new Term(F2, "search")), BooleanClause.Occur.SHOULD);
bq.add(bq2, BooleanClause.Occur.SHOULD);
@@ -130,7 +136,7 @@ public class TestBooleanQueryVisitSubsco
private final Set<Scorer> tqsSet = new HashSet<>();
MyCollector() {
- super(TopScoreDocCollector.create(10, true));
+ super(TopScoreDocCollector.create(10));
}
public LeafCollector getLeafCollector(LeafReaderContext context)
@@ -139,11 +145,6 @@ public class TestBooleanQueryVisitSubsco
return new FilterLeafCollector(super.getLeafCollector(context)) {
@Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
- @Override
public void setScorer(Scorer scorer) throws IOException {
super.setScorer(scorer);
tqsSet.clear();
@@ -205,7 +206,7 @@ public class TestBooleanQueryVisitSubsco
}
public void testGetChildrenBoosterScorer() throws IOException {
- final BooleanQuery query = new BooleanQuery();
+ final BooleanQuery2 query = new BooleanQuery2();
query.add(new TermQuery(new Term(F2, "nutch")), Occur.SHOULD);
query.add(new TermQuery(new Term(F2, "miss")), Occur.SHOULD);
ScorerSummarizingCollector collector = new ScorerSummarizingCollector();
@@ -246,11 +247,6 @@ public class TestBooleanQueryVisitSubsco
public void collect(int doc) throws IOException {
numHits[0]++;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
};
}
@@ -276,4 +272,22 @@ public class TestBooleanQueryVisitSubsco
return builder;
}
}
+
+ static class BooleanQuery2 extends BooleanQuery {
+
+ @Override
+ public Weight createWeight(IndexSearcher searcher) throws IOException {
+ return new BooleanWeight(searcher, false) {
+ @Override
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) throws IOException {
+ Scorer scorer = scorer(context, acceptDocs);
+ if (scorer == null) {
+ return null;
+ }
+ return new DefaultBulkScorer(scorer);
+ }
+ };
+ }
+
+ }
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java Thu Jan 15 10:19:28 2015
@@ -65,66 +65,6 @@ public class TestBooleanScorer extends L
ir.close();
directory.close();
}
-
- public void testEmptyBucketWithMoreDocs() throws Exception {
- // This test checks the logic of nextDoc() when all sub scorers have docs
- // beyond the first bucket (for example). Currently, the code relies on the
- // 'more' variable to work properly, and this test ensures that if the logic
- // changes, we have a test to back it up.
-
- Directory directory = newDirectory();
- RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
- writer.commit();
- IndexReader ir = writer.getReader();
- writer.close();
- IndexSearcher searcher = newSearcher(ir);
- BooleanWeight weight = (BooleanWeight) new BooleanQuery().createWeight(searcher);
- BulkScorer[] scorers = new BulkScorer[] {new BulkScorer() {
- private int doc = -1;
-
- @Override
- public boolean score(LeafCollector c, int maxDoc) throws IOException {
- assert doc == -1;
- doc = 3000;
- FakeScorer fs = new FakeScorer();
- fs.doc = doc;
- fs.score = 1.0f;
- c.setScorer(fs);
- c.collect(3000);
- return false;
- }
- }};
-
- BooleanScorer bs = new BooleanScorer(weight, false, 1, Arrays.asList(scorers), Collections.<BulkScorer>emptyList(), scorers.length);
-
- final List<Integer> hits = new ArrayList<>();
- bs.score(new SimpleCollector() {
- int docBase;
- @Override
- public void setScorer(Scorer scorer) {
- }
-
- @Override
- public void collect(int doc) {
- hits.add(docBase+doc);
- }
-
- @Override
- protected void doSetNextReader(LeafReaderContext context) throws IOException {
- docBase = context.docBase;
- }
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
- });
-
- assertEquals("should have only 1 hit", 1, hits.size());
- assertEquals("hit should have been docID=3000", 3000, hits.get(0).intValue());
- ir.close();
- directory.close();
- }
/** Throws UOE if Weight.scorer is called */
private static class CrazyMustUseBulkScorerQuery extends Query {
@@ -162,7 +102,7 @@ public class TestBooleanScorer extends L
}
@Override
- public BulkScorer bulkScorer(LeafReaderContext context, boolean scoreDocsInOrder, Bits acceptDocs) {
+ public BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) {
return new BulkScorer() {
@Override
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java Thu Jan 15 10:19:28 2015
@@ -54,25 +54,14 @@ public class TestCachingCollector extend
private static class NoOpCollector extends SimpleCollector {
- private final boolean acceptDocsOutOfOrder;
-
- public NoOpCollector(boolean acceptDocsOutOfOrder) {
- this.acceptDocsOutOfOrder = acceptDocsOutOfOrder;
- }
-
@Override
public void collect(int doc) throws IOException {}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return acceptDocsOutOfOrder;
- }
-
}
public void testBasic() throws Exception {
for (boolean cacheScores : new boolean[] { false, true }) {
- CachingCollector cc = CachingCollector.create(new NoOpCollector(false), cacheScores, 1.0);
+ CachingCollector cc = CachingCollector.create(new NoOpCollector(), cacheScores, 1.0);
LeafCollector acc = cc.getLeafCollector(null);
acc.setScorer(new MockScorer());
@@ -90,17 +79,12 @@ public class TestCachingCollector extend
assertEquals(prevDocID + 1, doc);
prevDocID = doc;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
});
}
}
public void testIllegalStateOnReplay() throws Exception {
- CachingCollector cc = CachingCollector.create(new NoOpCollector(false), true, 50 * ONE_BYTE);
+ CachingCollector cc = CachingCollector.create(new NoOpCollector(), true, 50 * ONE_BYTE);
LeafCollector acc = cc.getLeafCollector(null);
acc.setScorer(new MockScorer());
@@ -112,40 +96,13 @@ public class TestCachingCollector extend
assertFalse("CachingCollector should not be cached due to low memory limit", cc.isCached());
try {
- cc.replay(new NoOpCollector(false));
+ cc.replay(new NoOpCollector());
fail("replay should fail if CachingCollector is not cached");
} catch (IllegalStateException e) {
// expected
}
}
- public void testIllegalCollectorOnReplay() throws Exception {
- // tests that the Collector passed to replay() has an out-of-order mode that
- // is valid with the Collector passed to the ctor
-
- // 'src' Collector does not support out-of-order
- CachingCollector cc = CachingCollector.create(new NoOpCollector(false), true, 100 * ONE_BYTE);
- LeafCollector acc = cc.getLeafCollector(null);
- acc.setScorer(new MockScorer());
- for (int i = 0; i < 10; i++) acc.collect(i);
- cc.replay(new NoOpCollector(true)); // this call should not fail
- cc.replay(new NoOpCollector(false)); // this call should not fail
-
- // 'src' Collector supports out-of-order
- cc = CachingCollector.create(new NoOpCollector(true), true, 100 * ONE_BYTE);
- acc = cc.getLeafCollector(null);
- acc.setScorer(new MockScorer());
- for (int i = 0; i < 10; i++) acc.collect(i);
- cc.replay(new NoOpCollector(true)); // this call should not fail
- try {
- cc.replay(new NoOpCollector(false)); // this call should fail
- fail("should have failed if an in-order Collector was given to replay(), " +
- "while CachingCollector was initialized with out-of-order collection");
- } catch (IllegalArgumentException e) {
- // ok
- }
- }
-
public void testCachedArraysAllocation() throws Exception {
// tests the cached arrays allocation -- if the 'nextLength' was too high,
// caching would terminate even if a smaller length would suffice.
@@ -154,7 +111,7 @@ public class TestCachingCollector extend
int numDocs = random().nextInt(10000) + 150;
for (boolean cacheScores : new boolean[] { false, true }) {
int bytesPerDoc = cacheScores ? 8 : 4;
- CachingCollector cc = CachingCollector.create(new NoOpCollector(false),
+ CachingCollector cc = CachingCollector.create(new NoOpCollector(),
cacheScores, bytesPerDoc * ONE_BYTE * numDocs);
LeafCollector acc = cc.getLeafCollector(null);
acc.setScorer(new MockScorer());
@@ -170,13 +127,13 @@ public class TestCachingCollector extend
public void testNoWrappedCollector() throws Exception {
for (boolean cacheScores : new boolean[] { false, true }) {
// create w/ null wrapped collector, and test that the methods work
- CachingCollector cc = CachingCollector.create(true, cacheScores, 50 * ONE_BYTE);
+ CachingCollector cc = CachingCollector.create(cacheScores, 50 * ONE_BYTE);
LeafCollector acc = cc.getLeafCollector(null);
acc.setScorer(new MockScorer());
acc.collect(0);
assertTrue(cc.isCached());
- cc.replay(new NoOpCollector(true));
+ cc.replay(new NoOpCollector());
}
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java Thu Jan 15 10:19:28 2015
@@ -67,11 +67,6 @@ public class TestConstantScoreQuery exte
assertEquals("Score differs from expected", expectedScore, this.scorer.score(), 0);
count[0]++;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
assertEquals("invalid number of results", 1, count[0]);
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Thu Jan 15 10:19:28 2015
@@ -497,7 +497,7 @@ public class TestDisjunctionMaxQuery ext
SpanQuery sq2 = new SpanTermQuery(new Term(FIELD, "clckwork"));
query.add(sq1);
query.add(sq2);
- TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true);
+ TopScoreDocCollector collector = TopScoreDocCollector.create(1000);
searcher.search(query, collector);
hits = collector.topDocs().scoreDocs.length;
for (ScoreDoc scoreDoc : collector.topDocs().scoreDocs){
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java Thu Jan 15 10:19:28 2015
@@ -74,10 +74,6 @@ public class TestDocBoost extends Lucene
protected void doSetNextReader(LeafReaderContext context) throws IOException {
base = context.docBase;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
float lastScore = 0.0f;
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestEarlyTermination.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestEarlyTermination.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestEarlyTermination.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestEarlyTermination.java Thu Jan 15 10:19:28 2015
@@ -60,7 +60,6 @@ public class TestEarlyTermination extend
final IndexSearcher searcher = newSearcher(reader);
final Collector collector = new SimpleCollector() {
- final boolean outOfOrder = random().nextBoolean();
boolean collectionTerminated = true;
@Override
@@ -82,11 +81,6 @@ public class TestEarlyTermination extend
}
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return outOfOrder;
- }
-
};
searcher.search(new MatchAllDocsQuery(), collector);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java Thu Jan 15 10:19:28 2015
@@ -79,7 +79,7 @@ public class TestElevationComparator ext
new SortField(null, SortField.Type.SCORE, reversed)
);
- TopDocsCollector<Entry> topCollector = TopFieldCollector.create(sort, 50, false, true, true, true);
+ TopDocsCollector<Entry> topCollector = TopFieldCollector.create(sort, 50, false, true, true);
searcher.search(newq, null, topCollector);
TopDocs topDocs = topCollector.topDocs(0, 10);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java Thu Jan 15 10:19:28 2015
@@ -241,10 +241,6 @@ public class TestMultiTermConstantScore
protected void doSetNextReader(LeafReaderContext context) throws IOException {
base = context.docBase;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
//
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestPositiveScoresOnlyCollector.java Thu Jan 15 10:19:28 2015
@@ -86,7 +86,7 @@ public class TestPositiveScoresOnlyColle
IndexSearcher searcher = newSearcher(ir);
Weight fake = new TermQuery(new Term("fake", "weight")).createWeight(searcher);
Scorer s = new SimpleScorer(fake);
- TopDocsCollector<ScoreDoc> tdc = TopScoreDocCollector.create(scores.length, true);
+ TopDocsCollector<ScoreDoc> tdc = TopScoreDocCollector.create(scores.length);
Collector c = new PositiveScoresOnlyCollector(tdc);
LeafCollector ac = c.getLeafCollector(ir.leaves().get(0));
ac.setScorer(s);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScoreCachingWrappingScorer.java Thu Jan 15 10:19:28 2015
@@ -90,10 +90,6 @@ public class TestScoreCachingWrappingSco
@Override public void setScorer(Scorer scorer) {
this.scorer = new ScoreCachingWrappingScorer(scorer);
}
-
- @Override public boolean acceptsDocsOutOfOrder() {
- return true;
- }
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java Thu Jan 15 10:19:28 2015
@@ -115,10 +115,6 @@ public class TestScorerPerf extends Luce
protected void doSetNextReader(LeafReaderContext context) throws IOException {
docBase = context.docBase;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java Thu Jan 15 10:19:28 2015
@@ -111,10 +111,6 @@ public class TestSimilarity extends Luce
protected void doSetNextReader(LeafReaderContext context) throws IOException {
base = context.docBase;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
PhraseQuery pq = new PhraseQuery();
@@ -133,10 +129,6 @@ public class TestSimilarity extends Luce
//System.out.println("Doc=" + doc + " score=" + score);
assertEquals(1.0f, scorer.score(), 0);
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
pq.setSlop(2);
@@ -152,10 +144,6 @@ public class TestSimilarity extends Luce
//System.out.println("Doc=" + doc + " score=" + score);
assertEquals(2.0f, scorer.score(), 0);
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
reader.close();
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java Thu Jan 15 10:19:28 2015
@@ -191,11 +191,6 @@ public class TestSloppyPhraseQuery exten
totalHits++;
max = Math.max(max, scorer.freq());
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
}
/** checks that no scores or freqs are infinite */
@@ -213,11 +208,6 @@ public class TestSloppyPhraseQuery exten
assertFalse(Float.isInfinite(scorer.freq()));
assertFalse(Float.isInfinite(scorer.score()));
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
});
QueryUtils.check(random(), pq, searcher);
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java Thu Jan 15 10:19:28 2015
@@ -123,8 +123,7 @@ public class TestSubScorerFreqs extends
@Test
public void testTermQuery() throws Exception {
TermQuery q = new TermQuery(new Term("f", "d"));
- CountingCollector c = new CountingCollector(TopScoreDocCollector.create(10,
- true));
+ CountingCollector c = new CountingCollector(TopScoreDocCollector.create(10));
s.search(q, null, c);
final int maxDocs = s.getIndexReader().maxDoc();
assertEquals(maxDocs, c.docCounts.size());
@@ -164,7 +163,7 @@ public class TestSubScorerFreqs extends
for (final Set<String> occur : occurList) {
CountingCollector c = new CountingCollector(TopScoreDocCollector.create(
- 10, true), occur);
+ 10), occur);
s.search(query, null, c);
final int maxDocs = s.getIndexReader().maxDoc();
assertEquals(maxDocs, c.docCounts.size());
@@ -196,8 +195,7 @@ public class TestSubScorerFreqs extends
PhraseQuery q = new PhraseQuery();
q.add(new Term("f", "b"));
q.add(new Term("f", "c"));
- CountingCollector c = new CountingCollector(TopScoreDocCollector.create(10,
- true));
+ CountingCollector c = new CountingCollector(TopScoreDocCollector.create(10));
s.search(q, null, c);
final int maxDocs = s.getIndexReader().maxDoc();
assertEquals(maxDocs, c.docCounts.size());
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java Thu Jan 15 10:19:28 2015
@@ -78,7 +78,7 @@ public class TestTermScorer extends Luce
Weight weight = indexSearcher.createNormalizedWeight(termQuery);
assertTrue(indexSearcher.getTopReaderContext() instanceof LeafReaderContext);
LeafReaderContext context = (LeafReaderContext)indexSearcher.getTopReaderContext();
- BulkScorer ts = weight.bulkScorer(context, true, context.reader().getLiveDocs());
+ 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<>();
@@ -107,11 +107,6 @@ public class TestTermScorer extends Luce
protected void doSetNextReader(LeafReaderContext context) throws IOException {
base = context.docBase;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
});
assertTrue("docs Size: " + docs.size() + " is not: " + 2, docs.size() == 2);
TestHit doc0 = docs.get(0);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java Thu Jan 15 10:19:28 2015
@@ -356,11 +356,6 @@ public class TestTimeLimitingCollector e
protected void doSetNextReader(LeafReaderContext context) throws IOException {
docBase = context.docBase;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsCollector.java Thu Jan 15 10:19:28 2015
@@ -68,11 +68,6 @@ public class TestTopDocsCollector extend
public void setScorer(Scorer scorer) {
// Don't do anything. Assign scores in random
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
};
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java Thu Jan 15 10:19:28 2015
@@ -198,7 +198,7 @@ public class TestTopDocsMerge extends Lu
final TopDocs topHits;
if (sort == null) {
if (useFrom) {
- TopScoreDocCollector c = TopScoreDocCollector.create(numHits, random().nextBoolean());
+ TopScoreDocCollector c = TopScoreDocCollector.create(numHits);
searcher.search(query, c);
from = TestUtil.nextInt(random(), 0, numHits - 1);
size = numHits - from;
@@ -217,7 +217,7 @@ public class TestTopDocsMerge extends Lu
topHits = searcher.search(query, numHits);
}
} else {
- final TopFieldCollector c = TopFieldCollector.create(sort, numHits, true, true, true, random().nextBoolean());
+ final TopFieldCollector c = TopFieldCollector.create(sort, numHits, true, true, true);
searcher.search(query, c);
if (useFrom) {
from = TestUtil.nextInt(random(), 0, numHits - 1);
@@ -261,7 +261,7 @@ public class TestTopDocsMerge extends Lu
if (sort == null) {
subHits = subSearcher.search(w, numHits);
} else {
- final TopFieldCollector c = TopFieldCollector.create(sort, numHits, true, true, true, random().nextBoolean());
+ final TopFieldCollector c = TopFieldCollector.create(sort, numHits, true, true, true);
subSearcher.search(w, c);
subHits = c.topDocs(0, numHits);
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java Thu Jan 15 10:19:28 2015
@@ -63,7 +63,7 @@ public class TestTopFieldCollector exten
for(int i = 0; i < sort.length; i++) {
Query q = new MatchAllDocsQuery();
TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, false,
- false, false, true);
+ false, false);
is.search(q, tdc);
@@ -82,7 +82,7 @@ public class TestTopFieldCollector exten
for(int i = 0; i < sort.length; i++) {
Query q = new MatchAllDocsQuery();
TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, false,
- false, true);
+ false);
is.search(q, tdc);
@@ -102,7 +102,7 @@ public class TestTopFieldCollector exten
for(int i = 0; i < sort.length; i++) {
Query q = new MatchAllDocsQuery();
TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true,
- false, true);
+ false);
is.search(q, tdc);
@@ -123,7 +123,7 @@ public class TestTopFieldCollector exten
for(int i = 0; i < sort.length; i++) {
Query q = new MatchAllDocsQuery();
TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true,
- false, true);
+ false);
is.search(q, tdc);
@@ -143,7 +143,7 @@ public class TestTopFieldCollector exten
for(int i = 0; i < sort.length; i++) {
Query q = new MatchAllDocsQuery();
TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true,
- true, true);
+ true);
is.search(q, tdc);
@@ -155,110 +155,13 @@ public class TestTopFieldCollector exten
assertTrue(!Float.isNaN(td.getMaxScore()));
}
}
-
- public void testOutOfOrderDocsScoringSort() throws Exception {
-
- // Two Sort criteria to instantiate the multi/single comparators.
- Sort[] sort = new Sort[] {new Sort(SortField.FIELD_DOC), new Sort() };
- boolean[][] tfcOptions = new boolean[][] {
- new boolean[] { false, false, false },
- new boolean[] { false, false, true },
- new boolean[] { false, true, false },
- new boolean[] { false, true, true },
- new boolean[] { true, false, false },
- new boolean[] { true, false, true },
- new boolean[] { true, true, false },
- new boolean[] { true, true, true },
- };
- String[] actualTFCClasses = new String[] {
- "OutOfOrderNonScoringCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderScoringNoMaxScoreCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderNonScoringCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderScoringNoMaxScoreCollector",
- "OutOfOrderScoringMaxScoreCollector"
- };
-
- BooleanQuery bq = new BooleanQuery();
- // Add a Query with SHOULD, since bw.scorer() returns BooleanScorer2
- // which delegates to BS if there are no mandatory clauses.
- bq.add(new MatchAllDocsQuery(), Occur.SHOULD);
- // Set minNrShouldMatch to 1 so that BQ will not optimize rewrite to return
- // the clause instead of BQ.
- bq.setMinimumNumberShouldMatch(1);
- for(int i = 0; i < sort.length; i++) {
- for(int j = 0; j < tfcOptions.length; j++) {
- TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10,
- tfcOptions[j][0], tfcOptions[j][1], tfcOptions[j][2], false);
-
- assertTrue(tdc.getClass().getName().endsWith("$"+actualTFCClasses[j]));
-
- is.search(bq, tdc);
-
- TopDocs td = tdc.topDocs();
- ScoreDoc[] sd = td.scoreDocs;
- assertEquals(10, sd.length);
- }
- }
- }
-
- // OutOfOrderMulti*Collector
- public void testOutOfOrderDocsScoringSortMulti() throws Exception {
-
- // Two Sort criteria to instantiate the multi/single comparators.
- Sort[] sort = new Sort[] {new Sort(SortField.FIELD_DOC, SortField.FIELD_SCORE) };
- boolean[][] tfcOptions = new boolean[][] {
- new boolean[] { false, false, false },
- new boolean[] { false, false, true },
- new boolean[] { false, true, false },
- new boolean[] { false, true, true },
- new boolean[] { true, false, false },
- new boolean[] { true, false, true },
- new boolean[] { true, true, false },
- new boolean[] { true, true, true },
- };
- String[] actualTFCClasses = new String[] {
- "OutOfOrderNonScoringCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderScoringNoMaxScoreCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderNonScoringCollector",
- "OutOfOrderScoringMaxScoreCollector",
- "OutOfOrderScoringNoMaxScoreCollector",
- "OutOfOrderScoringMaxScoreCollector"
- };
-
- BooleanQuery bq = new BooleanQuery();
- // Add a Query with SHOULD, since bw.scorer() returns BooleanScorer2
- // which delegates to BS if there are no mandatory clauses.
- bq.add(new MatchAllDocsQuery(), Occur.SHOULD);
- // Set minNrShouldMatch to 1 so that BQ will not optimize rewrite to return
- // the clause instead of BQ.
- bq.setMinimumNumberShouldMatch(1);
- for(int i = 0; i < sort.length; i++) {
- for(int j = 0; j < tfcOptions.length; j++) {
- TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10,
- tfcOptions[j][0], tfcOptions[j][1], tfcOptions[j][2], false);
- assertTrue(tdc.getClass().getName().endsWith("$"+actualTFCClasses[j]));
-
- is.search(bq, tdc);
-
- TopDocs td = tdc.topDocs();
- ScoreDoc[] sd = td.scoreDocs;
- assertEquals(10, sd.length);
- }
- }
- }
-
public void testSortWithScoreAndMaxScoreTrackingNoResults() throws Exception {
// Two Sort criteria to instantiate the multi/single comparators.
Sort[] sort = new Sort[] {new Sort(SortField.FIELD_DOC), new Sort() };
for(int i = 0; i < sort.length; i++) {
- TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true, true, true);
+ TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true, true);
TopDocs td = tdc.topDocs();
assertEquals(0, td.totalHits);
assertTrue(Float.isNaN(td.getMaxScore()));
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java Thu Jan 15 10:19:28 2015
@@ -199,8 +199,7 @@ public class DrillSideways {
after,
true,
doDocScores,
- doMaxScore,
- true);
+ doMaxScore);
DrillSidewaysResult r = search(query, hitCollector);
return new DrillSidewaysResult(r.facets, hitCollector.topDocs());
} else {
@@ -227,7 +226,7 @@ public class DrillSideways {
limit = 1; // the collector does not alow numHits = 0
}
topN = Math.min(topN, limit);
- TopScoreDocCollector hitCollector = TopScoreDocCollector.create(topN, after, true);
+ TopScoreDocCollector hitCollector = TopScoreDocCollector.create(topN, after);
DrillSidewaysResult r = search(query, hitCollector);
return new DrillSidewaysResult(r.facets, hitCollector.topDocs());
}
@@ -236,12 +235,7 @@ public class DrillSideways {
* (e.g., {@code ToParentBlockJoinCollector}) expects all
* sub-scorers to be positioned on the document being
* collected. This will cause some performance loss;
- * default is false. Note that if you return true from
- * this method (in a subclass) be sure your collector
- * also returns false from {@link
- * LeafCollector#acceptsDocsOutOfOrder}: this will trick
- * {@code BooleanQuery} into also scoring all subDocs at
- * once. */
+ * default is false. */
protected boolean scoreSubDocsAtOnce() {
return false;
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java Thu Jan 15 10:19:28 2015
@@ -111,20 +111,13 @@ class DrillSidewaysQuery extends Query {
}
@Override
- public boolean scoresDocsOutOfOrder() {
- // TODO: would be nice if AssertingIndexSearcher
- // confirmed this for us
- return false;
- }
-
- @Override
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, boolean scoreDocsInOrder, Bits acceptDocs) 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?
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java Thu Jan 15 10:19:28 2015
@@ -155,14 +155,6 @@ public class FacetsCollector extends Sim
}
@Override
- public final boolean acceptsDocsOutOfOrder() {
- // If we are keeping scores then we require in-order
- // because we append each score to the float[] and
- // expect that they correlate in order to the hits:
- return keepScores == false;
- }
-
- @Override
public final void collect(int doc) throws IOException {
docs.addDoc(doc);
if (keepScores) {
@@ -284,14 +276,9 @@ public class FacetsCollector extends Sim
(FieldDoc) after,
fillFields,
doDocScores,
- doMaxScore,
- false);
+ doMaxScore);
} else {
- // TODO: can we pass the right boolean for
- // in-order instead of hardwired to false...? we'd
- // need access to the protected IS.search methods
- // taking Weight... could use reflection...
- hitsCollector = TopScoreDocCollector.create(n, after, false);
+ hitsCollector = TopScoreDocCollector.create(n, after);
}
searcher.search(q, MultiCollector.wrap(hitsCollector, fc));
return hitsCollector.topDocs();
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/AssertingSubDocsAtOnceCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/AssertingSubDocsAtOnceCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/AssertingSubDocsAtOnceCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/AssertingSubDocsAtOnceCollector.java Thu Jan 15 10:19:28 2015
@@ -54,9 +54,4 @@ class AssertingSubDocsAtOnceCollector ex
}
}
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java Thu Jan 15 10:19:28 2015
@@ -682,11 +682,6 @@ public class TestDrillSideways extends F
protected void doSetNextReader(LeafReaderContext context) throws IOException {
lastDocID = -1;
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
});
// Also separately verify that DS respects the
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupHeadsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupHeadsCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupHeadsCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupHeadsCollector.java Thu Jan 15 10:19:28 2015
@@ -126,11 +126,6 @@ public abstract class AbstractAllGroupHe
groupHead.updateDocHead(doc);
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
/**
* Contains the result of group head retrieval.
* To prevent new object creations of this class for every collect.
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupsCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupsCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractAllGroupsCollector.java Thu Jan 15 10:19:28 2015
@@ -62,8 +62,4 @@ public abstract class AbstractAllGroupsC
@Override
public void setScorer(Scorer scorer) throws IOException {}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
}
\ No newline at end of file
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java Thu Jan 15 10:19:28 2015
@@ -37,11 +37,6 @@ public abstract class AbstractDistinctVa
*/
public abstract List<GC> getGroups();
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
-
/**
* Returned by {@link AbstractDistinctValuesCollector#getGroups()},
* representing the value and set of distinct values for the group.
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java Thu Jan 15 10:19:28 2015
@@ -321,11 +321,6 @@ abstract public class AbstractFirstPassG
}
@Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
- @Override
protected void doSetNextReader(LeafReaderContext readerContext) throws IOException {
docBase = readerContext.docBase;
for (int i=0; i<comparators.length; i++) {
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractGroupFacetCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractGroupFacetCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractGroupFacetCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractGroupFacetCollector.java Thu Jan 15 10:19:28 2015
@@ -109,11 +109,6 @@ public abstract class AbstractGroupFacet
public void setScorer(Scorer scorer) throws IOException {
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
-
/**
* The grouped facet result. Containing grouped facet entries, total count and total missing count.
*/
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractSecondPassGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractSecondPassGroupingCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractSecondPassGroupingCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractSecondPassGroupingCollector.java Thu Jan 15 10:19:28 2015
@@ -69,10 +69,10 @@ public abstract class AbstractSecondPass
final TopDocsCollector<?> collector;
if (withinGroupSort == null) {
// Sort by score
- collector = TopScoreDocCollector.create(maxDocsPerGroup, true);
+ collector = TopScoreDocCollector.create(maxDocsPerGroup);
} else {
// Sort by fields
- collector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, fillSortFields, getScores, getMaxScores, true);
+ collector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, fillSortFields, getScores, getMaxScores);
}
groupMap.put(group.groupValue,
new SearchGroupDocs<>(group.groupValue,
@@ -114,11 +114,6 @@ public abstract class AbstractSecondPass
}
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
public TopGroups<GROUP_VALUE_TYPE> getTopGroups(int withinGroupOffset) {
@SuppressWarnings({"unchecked","rawtypes"})
final GroupDocs<GROUP_VALUE_TYPE>[] groupDocsResult = (GroupDocs<GROUP_VALUE_TYPE>[]) new GroupDocs[groups.size()];
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java Thu Jan 15 10:19:28 2015
@@ -345,10 +345,10 @@ public class BlockGroupingCollector exte
if (!needsScores) {
throw new IllegalArgumentException("cannot sort by relevance within group: needsScores=false");
}
- collector = TopScoreDocCollector.create(maxDocsPerGroup, true);
+ collector = TopScoreDocCollector.create(maxDocsPerGroup);
} else {
// Sort by fields
- collector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, fillSortFields, needsScores, needsScores, true);
+ collector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, fillSortFields, needsScores, needsScores);
}
LeafCollector leafCollector = collector.getLeafCollector(og.readerContext);
@@ -513,11 +513,6 @@ public class BlockGroupingCollector exte
}
@Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
- @Override
protected void doSetNextReader(LeafReaderContext readerContext) throws IOException {
if (subDocUpto != 0) {
processGroup();
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Thu Jan 15 10:19:28 2015
@@ -876,7 +876,7 @@ public class TestGrouping extends Lucene
}
} else {
// Collect only into cache, then replay multiple times:
- c = cCache = CachingCollector.create(false, true, maxCacheMB);
+ c = cCache = CachingCollector.create(true, maxCacheMB);
}
} else {
cCache = null;
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java Thu Jan 15 10:19:28 2015
@@ -120,11 +120,6 @@ public class HighlighterPhraseTest exten
private int baseDoc;
@Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
-
- @Override
public void collect(int i) {
bitset.set(this.baseDoc + i);
}
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java Thu Jan 15 10:19:28 2015
@@ -45,11 +45,6 @@ abstract class TermsCollector extends Si
return collectorTerms;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
-
/**
* Chooses the right {@link TermsCollector} implementation.
*
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java Thu Jan 15 10:19:28 2015
@@ -133,21 +133,25 @@ class TermsIncludingScoreQuery extends Q
@Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
- SVInnerScorer scorer = (SVInnerScorer) bulkScorer(context, false, null);
- if (scorer != null) {
- return scorer.explain(doc);
+ Terms terms = context.reader().terms(field);
+ if (terms != null) {
+ segmentTermsEnum = terms.iterator(segmentTermsEnum);
+ BytesRef spare = new BytesRef();
+ DocsEnum docsEnum = null;
+ for (int i = 0; i < TermsIncludingScoreQuery.this.terms.size(); i++) {
+ if (segmentTermsEnum.seekExact(TermsIncludingScoreQuery.this.terms.get(ords[i], spare))) {
+ docsEnum = segmentTermsEnum.docs(null, docsEnum, DocsEnum.FLAG_NONE);
+ if (docsEnum.advance(doc) == doc) {
+ final float score = TermsIncludingScoreQuery.this.scores[ords[i]];
+ return new ComplexExplanation(true, score, "Score based on join value " + segmentTermsEnum.term().utf8ToString());
+ }
+ }
+ }
}
return new ComplexExplanation(false, 0.0f, "Not a match");
}
@Override
- public boolean scoresDocsOutOfOrder() {
- // We have optimized impls below if we are allowed
- // to score out-of-order:
- return true;
- }
-
- @Override
public Query getQuery() {
return TermsIncludingScoreQuery.this;
}
@@ -179,143 +183,9 @@ class TermsIncludingScoreQuery extends Q
return new SVInOrderScorer(this, acceptDocs, segmentTermsEnum, context.reader().maxDoc(), cost);
}
}
-
- @Override
- public BulkScorer bulkScorer(LeafReaderContext context, boolean scoreDocsInOrder, Bits acceptDocs) throws IOException {
-
- if (scoreDocsInOrder) {
- return super.bulkScorer(context, scoreDocsInOrder, acceptDocs);
- } else {
- Terms terms = context.reader().terms(field);
- if (terms == null) {
- return null;
- }
- // what is the runtime...seems ok?
- final long cost = context.reader().maxDoc() * terms.size();
-
- segmentTermsEnum = terms.iterator(segmentTermsEnum);
- // Optimized impls that take advantage of docs
- // being allowed to be out of order:
- if (multipleValuesPerDocument) {
- return new MVInnerScorer(this, acceptDocs, segmentTermsEnum, context.reader().maxDoc(), cost);
- } else {
- return new SVInnerScorer(this, acceptDocs, segmentTermsEnum, cost);
- }
- }
- }
};
}
- // This impl assumes that the 'join' values are used uniquely per doc per field. Used for one to many relations.
- class SVInnerScorer extends BulkScorer {
-
- final BytesRef spare = new BytesRef();
- final Bits acceptDocs;
- final TermsEnum termsEnum;
- final long cost;
-
- int upto;
- DocsEnum docsEnum;
- DocsEnum reuse;
- int scoreUpto;
- int doc;
-
- SVInnerScorer(Weight weight, Bits acceptDocs, TermsEnum termsEnum, long cost) {
- this.acceptDocs = acceptDocs;
- this.termsEnum = termsEnum;
- this.cost = cost;
- this.doc = -1;
- }
-
- @Override
- public boolean score(LeafCollector collector, int max) throws IOException {
- FakeScorer fakeScorer = new FakeScorer();
- collector.setScorer(fakeScorer);
- if (doc == -1) {
- doc = nextDocOutOfOrder();
- }
- while(doc < max) {
- fakeScorer.doc = doc;
- fakeScorer.score = scores[ords[scoreUpto]];
- collector.collect(doc);
- doc = nextDocOutOfOrder();
- }
-
- return doc != DocsEnum.NO_MORE_DOCS;
- }
-
- int nextDocOutOfOrder() throws IOException {
- while (true) {
- if (docsEnum != null) {
- int docId = docsEnumNextDoc();
- if (docId == DocIdSetIterator.NO_MORE_DOCS) {
- docsEnum = null;
- } else {
- return doc = docId;
- }
- }
-
- if (upto == terms.size()) {
- return doc = DocIdSetIterator.NO_MORE_DOCS;
- }
-
- scoreUpto = upto;
- if (termsEnum.seekExact(terms.get(ords[upto++], spare))) {
- docsEnum = reuse = termsEnum.docs(acceptDocs, reuse, DocsEnum.FLAG_NONE);
- }
- }
- }
-
- protected int docsEnumNextDoc() throws IOException {
- return docsEnum.nextDoc();
- }
-
- private Explanation explain(int target) throws IOException {
- int docId;
- do {
- docId = nextDocOutOfOrder();
- if (docId < target) {
- int tempDocId = docsEnum.advance(target);
- if (tempDocId == target) {
- docId = tempDocId;
- break;
- }
- } else if (docId == target) {
- break;
- }
- docsEnum = null; // goto the next ord.
- } while (docId != DocIdSetIterator.NO_MORE_DOCS);
-
- return new ComplexExplanation(true, scores[ords[scoreUpto]], "Score based on join value " + termsEnum.term().utf8ToString());
- }
- }
-
- // This impl that tracks whether a docid has already been emitted. This check makes sure that docs aren't emitted
- // twice for different join values. This means that the first encountered join value determines the score of a document
- // even if other join values yield a higher score.
- class MVInnerScorer extends SVInnerScorer {
-
- final FixedBitSet alreadyEmittedDocs;
-
- MVInnerScorer(Weight weight, Bits acceptDocs, TermsEnum termsEnum, int maxDoc, long cost) {
- super(weight, acceptDocs, termsEnum, cost);
- alreadyEmittedDocs = new FixedBitSet(maxDoc);
- }
-
- @Override
- protected int docsEnumNextDoc() throws IOException {
- while (true) {
- int docId = docsEnum.nextDoc();
- if (docId == DocIdSetIterator.NO_MORE_DOCS) {
- return docId;
- }
- if (!alreadyEmittedDocs.getAndSet(docId)) {
- return docId;//if it wasn't previously set, return it
- }
- }
- }
- }
-
class SVInOrderScorer extends Scorer {
final DocIdSetIterator matchingDocsIterator;
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java Thu Jan 15 10:19:28 2015
@@ -57,11 +57,6 @@ abstract class TermsWithScoreCollector e
this.scorer = scorer;
}
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return true;
- }
-
/**
* Chooses the right {@link TermsWithScoreCollector} implementation.
*
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java Thu Jan 15 10:19:28 2015
@@ -154,11 +154,6 @@ public class ToChildBlockJoinQuery exten
throw new UnsupportedOperationException(getClass().getName() +
" cannot explain match on parent document");
}
-
- @Override
- public boolean scoresDocsOutOfOrder() {
- return false;
- }
}
static class ToChildBlockJoinScorer extends Scorer {
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinCollector.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinCollector.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinCollector.java Thu Jan 15 10:19:28 2015
@@ -38,6 +38,9 @@ import java.util.*;
* IndexWriter#updateDocuments}). Ie, the join is computed
* at index time.
*
+ * <p>This collector MUST be used with {@link ToParentBlockJoinIndexSearcher},
+ * in order to work correctly.
+ *
* <p>The parent Sort must only use
* fields from the parent documents; sorting by field in
* the child documents is not supported.</p>
@@ -296,11 +299,6 @@ public class ToParentBlockJoinCollector
}
}
}
-
- @Override
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
};
}
@@ -408,10 +406,10 @@ public class ToParentBlockJoinCollector
if (!trackScores) {
throw new IllegalArgumentException("cannot sort by relevance within group: trackScores=false");
}
- collector = TopScoreDocCollector.create(numDocsInGroup, true);
+ collector = TopScoreDocCollector.create(numDocsInGroup);
} else {
// Sort by fields
- collector = TopFieldCollector.create(withinGroupSort, numDocsInGroup, fillSortFields, trackScores, trackMaxScore, true);
+ collector = TopFieldCollector.create(withinGroupSort, numDocsInGroup, fillSortFields, trackScores, trackMaxScore);
}
LeafCollector leafCollector = collector.getLeafCollector(og.readerContext);
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java Thu Jan 15 10:19:28 2015
@@ -194,11 +194,6 @@ public class ToParentBlockJoinQuery exte
}
return new ComplexExplanation(false, 0.0f, "Not a match");
}
-
- @Override
- public boolean scoresDocsOutOfOrder() {
- return false;
- }
}
static class BlockJoinScorer extends Scorer {
Modified: lucene/dev/branches/lucene_solr_5_0/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_5_0/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java?rev=1652034&r1=1652033&r2=1652034&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_5_0/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java (original)
+++ lucene/dev/branches/lucene_solr_5_0/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java Thu Jan 15 10:19:28 2015
@@ -1314,6 +1314,7 @@ public class TestBlockJoin extends Lucen
IndexReader r = w.getReader();
w.close();
+ IndexSearcher searcher = new ToParentBlockJoinIndexSearcher(r);
Query childQuery = new TermQuery(new Term("childText", "text"));
BitDocIdSetFilter parentsFilter = new BitDocIdSetCachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("isParent", "yes"))));
ToParentBlockJoinQuery childJoinQuery = new ToParentBlockJoinQuery(childQuery, parentsFilter, ScoreMode.Avg);
@@ -1323,7 +1324,7 @@ public class TestBlockJoin extends Lucen
ToParentBlockJoinCollector c = new ToParentBlockJoinCollector(new Sort(new SortField("parentID", SortField.Type.STRING)),
10, true, true);
- newSearcher(r).search(parentQuery, c);
+ searcher.search(parentQuery, c);
TopGroups<Integer> groups = c.getTopGroups(childJoinQuery, null, 0, 10, 0, false);
// Two parents:
@@ -1381,6 +1382,8 @@ public class TestBlockJoin extends Lucen
IndexReader r = w.getReader();
w.close();
+ IndexSearcher searcher = new ToParentBlockJoinIndexSearcher(r);
+
// never matches:
Query childQuery = new TermQuery(new Term("childText", "bogus"));
BitDocIdSetFilter parentsFilter = new BitDocIdSetCachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("isParent", "yes"))));
@@ -1391,7 +1394,7 @@ public class TestBlockJoin extends Lucen
ToParentBlockJoinCollector c = new ToParentBlockJoinCollector(new Sort(new SortField("parentID", SortField.Type.STRING)),
10, true, true);
- newSearcher(r).search(parentQuery, c);
+ searcher.search(parentQuery, c);
TopGroups<Integer> groups = c.getTopGroups(childJoinQuery, null, 0, 10, 0, false);
// Two parents: