You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/02/11 18:24:28 UTC
svn commit: r1444889 -
/lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
Author: rmuir
Date: Mon Feb 11 17:24:28 2013
New Revision: 1444889
URL: http://svn.apache.org/r1444889
Log:
cut over test collector
Modified:
lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
Modified: lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java?rev=1444889&r1=1444888&r2=1444889&view=diff
==============================================================================
--- lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java (original)
+++ lucene/dev/branches/lucene4765/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java Mon Feb 11 17:24:28 2013
@@ -35,6 +35,7 @@ import org.apache.lucene.index.MultiFiel
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
@@ -466,50 +467,26 @@ public class TestJoinUtil extends Lucene
fromSearcher.search(new TermQuery(new Term("value", uniqueRandomValue)), new Collector() {
private Scorer scorer;
- private DocTermOrds docTermOrds;
- private TermsEnum docTermsEnum;
- private DocTermOrds.TermOrdsIterator reuse;
+ private SortedSetDocValues docTermOrds;
+ final BytesRef joinValue = new BytesRef();
@Override
public void collect(int doc) throws IOException {
- if (docTermOrds.isEmpty()) {
- return;
- }
-
- reuse = docTermOrds.lookup(doc, reuse);
- int[] buffer = new int[5];
-
- int chunk;
- do {
- chunk = reuse.read(buffer);
- if (chunk == 0) {
- return;
- }
-
- for (int idx = 0; idx < chunk; idx++) {
- int key = buffer[idx];
- docTermsEnum.seekExact((long) key);
- BytesRef joinValue = docTermsEnum.term();
- if (joinValue == null) {
- continue;
- }
-
- JoinScore joinScore = joinValueToJoinScores.get(joinValue);
- if (joinScore == null) {
- joinValueToJoinScores.put(BytesRef.deepCopyOf(joinValue), joinScore = new JoinScore());
- }
- joinScore.addScore(scorer.score());
+ docTermOrds.setDocument(doc);
+ long ord;
+ while ((ord = docTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
+ docTermOrds.lookupOrd(ord, joinValue);
+ JoinScore joinScore = joinValueToJoinScores.get(joinValue);
+ if (joinScore == null) {
+ joinValueToJoinScores.put(BytesRef.deepCopyOf(joinValue), joinScore = new JoinScore());
}
- } while (chunk >= buffer.length);
+ joinScore.addScore(scorer.score());
+ }
}
@Override
public void setNextReader(AtomicReaderContext context) throws IOException {
- // nocommit: cut over
- DocTermOrds.Iterator iterator = (DocTermOrds.Iterator) FieldCache.DEFAULT.getDocTermOrds(context.reader(), fromField);
- docTermOrds = iterator.getParent();
- docTermsEnum = docTermOrds.getOrdTermsEnum(context.reader());
- reuse = null;
+ docTermOrds = FieldCache.DEFAULT.getDocTermOrds(context.reader(), fromField);
}
@Override