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/10/12 21:34:33 UTC
svn commit: r1708209 - in /lucene/dev/trunk/lucene/misc/src:
java/org/apache/lucene/search/BlockJoinComparatorSource.java
test/org/apache/lucene/index/TestBlockJoinSorter.java
Author: jpountz
Date: Mon Oct 12 19:34:33 2015
New Revision: 1708209
URL: http://svn.apache.org/viewvc?rev=1708209&view=rev
Log:
LUCENE-6836: Fix reader context management with block-join sorting.
Modified:
lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/search/BlockJoinComparatorSource.java
lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java
Modified: lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/search/BlockJoinComparatorSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/search/BlockJoinComparatorSource.java?rev=1708209&r1=1708208&r2=1708209&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/search/BlockJoinComparatorSource.java (original)
+++ lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/search/BlockJoinComparatorSource.java Mon Oct 12 19:34:33 2015
@@ -20,6 +20,7 @@ package org.apache.lucene.search;
import java.io.IOException;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.SortingMergePolicy;
import org.apache.lucene.util.BitSet;
@@ -118,7 +119,7 @@ public class BlockJoinComparatorSource e
if (parentBits != null) {
throw new IllegalStateException("This comparator can only be used on a single segment");
}
- IndexSearcher searcher = new IndexSearcher(context.reader());
+ IndexSearcher searcher = new IndexSearcher(ReaderUtil.getTopLevelContext(context));
searcher.setQueryCache(null);
final Weight weight = searcher.createNormalizedWeight(parentsFilter, false);
final DocIdSetIterator parents = weight.scorer(context);
Modified: lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java?rev=1708209&r1=1708208&r2=1708209&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java (original)
+++ lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java Mon Oct 12 19:34:33 2015
@@ -41,7 +41,6 @@ import org.junit.Ignore;
public class TestBlockJoinSorter extends LuceneTestCase {
- @AwaitsFix(bugUrl="https://issues.apache.org/jira/browse/LUCENE-6836")
public void test() throws IOException {
final int numParents = atLeast(200);
IndexWriterConfig cfg = newIndexWriterConfig(new MockAnalyzer(random()));
@@ -65,14 +64,17 @@ public class TestBlockJoinSorter extends
writer.addDocuments(documents);
}
writer.forceMerge(1);
- final DirectoryReader indexReader = writer.getReader();
+ IndexReader indexReader = writer.getReader();
writer.close();
- final LeafReader reader = getOnlySegmentReader(indexReader);
+ IndexSearcher searcher = newSearcher(indexReader);
+ indexReader = searcher.getIndexReader(); // newSearcher may have wrapped it
+ assertEquals(1, indexReader.leaves().size());
+ final LeafReader reader = indexReader.leaves().get(0).reader();
final Query parentsFilter = new TermQuery(new Term("parent", "true"));
- IndexSearcher searcher = newSearcher(reader);
+
final Weight weight = searcher.createNormalizedWeight(parentsFilter, false);
- final DocIdSetIterator parents = weight.scorer(reader.getContext());
+ final DocIdSetIterator parents = weight.scorer(indexReader.leaves().get(0));
final BitSet parentBits = BitSet.of(parents, reader.maxDoc());
final NumericDocValues parentValues = reader.getNumericDocValues("parent_val");
final NumericDocValues childValues = reader.getNumericDocValues("child_val");