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/06 16:15:43 UTC
svn commit: r1649824 [4/4] - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/
lucene/core/src/test/org/apache/lucene/search/ lucene/expressions/
lucene/expressions/src/java/org/apache/lucene/expr...
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java?rev=1649824&r1=1649823&r2=1649824&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java Tue Jan 6 15:15:42 2015
@@ -23,6 +23,8 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.search.FieldComparator;
+import org.apache.lucene.search.LeafCollector;
+import org.apache.lucene.search.LeafFieldComparator;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
@@ -51,7 +53,6 @@ import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.request.SolrQueryRequest;
-
import org.junit.Ignore;
import java.io.IOException;
@@ -410,7 +411,8 @@ public class TestRankQueryPlugin extends
// :TODO: would be simpler to always serialize every position of SortField[]
if (type==SortField.Type.SCORE || type==SortField.Type.DOC) continue;
- FieldComparator comparator = null;
+ FieldComparator<?> comparator = null;
+ LeafFieldComparator leafComparator = null;
Object[] vals = new Object[nDocs];
int lastIdx = -1;
@@ -433,12 +435,12 @@ public class TestRankQueryPlugin extends
if (comparator == null) {
comparator = sortField.getComparator(1,0);
- comparator = comparator.setNextReader(currentLeaf);
+ leafComparator = comparator.getLeafComparator(currentLeaf);
}
doc -= currentLeaf.docBase; // adjust for what segment this is in
- comparator.setScorer(new FakeScorer(doc, score));
- comparator.copy(0, doc);
+ leafComparator.setScorer(new FakeScorer(doc, score));
+ leafComparator.copy(0, doc);
Object val = comparator.value(0);
if (null != ft) val = ft.marshalSortValue(val);
vals[position] = val;
@@ -705,24 +707,28 @@ public class TestRankQueryPlugin extends
class TestCollector extends TopDocsCollector {
private List<ScoreDoc> list = new ArrayList();
- private NumericDocValues values;
- private int base;
public TestCollector(PriorityQueue pq) {
super(pq);
}
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
- public void doSetNextReader(LeafReaderContext context) throws IOException {
- values = DocValues.getNumeric(context.reader(), "sort_i");
- base = context.docBase;
- }
+ @Override
+ public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
+ final int base = context.docBase;
+ final NumericDocValues values = DocValues.getNumeric(context.reader(), "sort_i");
+ return new LeafCollector() {
+
+ @Override
+ public void setScorer(Scorer scorer) throws IOException {}
+
+ public boolean acceptsDocsOutOfOrder() {
+ return false;
+ }
- public void collect(int doc) {
- list.add(new ScoreDoc(doc+base, (float)values.get(doc)));
+ public void collect(int doc) {
+ list.add(new ScoreDoc(doc+base, (float)values.get(doc)));
+ }
+ };
}
public int topDocsSize() {
@@ -759,27 +765,32 @@ public class TestRankQueryPlugin extends
class TestCollector1 extends TopDocsCollector {
private List<ScoreDoc> list = new ArrayList();
- private int base;
- private Scorer scorer;
public TestCollector1(PriorityQueue pq) {
super(pq);
}
- public boolean acceptsDocsOutOfOrder() {
- return false;
- }
-
- public void doSetNextReader(LeafReaderContext context) throws IOException {
- base = context.docBase;
- }
-
- public void setScorer(Scorer scorer) {
- this.scorer = scorer;
- }
-
- public void collect(int doc) throws IOException {
- list.add(new ScoreDoc(doc+base, scorer.score()));
+ @Override
+ public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
+ final int base = context.docBase;
+ return new LeafCollector() {
+
+ Scorer scorer;
+
+ @Override
+ public void setScorer(Scorer scorer) throws IOException {
+ this.scorer = scorer;
+ }
+
+ public void collect(int doc) throws IOException {
+ list.add(new ScoreDoc(doc+base, scorer.score()));
+ }
+
+ @Override
+ public boolean acceptsDocsOutOfOrder() {
+ return false;
+ }
+ };
}
public int topDocsSize() {
@@ -813,7 +824,4 @@ public class TestRankQueryPlugin extends
}
}
-
-
-
}