You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/02/09 10:36:03 UTC
svn commit: r1068809 [17/36] - in /lucene/dev/branches/docvalues: ./
dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/.idea/copyright/
dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/ant/
dev-tools/idea/lucene/contrib/queryparser/ dev-tools...
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java Wed Feb 9 09:35:27 2011
@@ -1,5 +1,22 @@
package org.apache.lucene.index;
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import java.util.Collection;
import java.util.Map;
import java.util.Random;
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java Wed Feb 9 09:35:27 2011
@@ -149,7 +149,7 @@ public class TestStressIndexing2 extends
Map<String,Document> docs = new HashMap<String,Document>();
IndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig(
TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.CREATE).setRAMBufferSizeMB(
- 0.1).setMaxBufferedDocs(maxBufferedDocs));
+ 0.1).setMaxBufferedDocs(maxBufferedDocs).setMergePolicy(newLogMergePolicy()));
w.setInfoStream(VERBOSE ? System.out : null);
w.commit();
LogMergePolicy lmp = (LogMergePolicy) w.getConfig().getMergePolicy();
@@ -206,7 +206,7 @@ public class TestStressIndexing2 extends
IndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig(
TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.CREATE)
.setRAMBufferSizeMB(0.1).setMaxBufferedDocs(maxBufferedDocs).setMaxThreadStates(maxThreadStates)
- .setReaderPooling(doReaderPooling));
+ .setReaderPooling(doReaderPooling).setMergePolicy(newLogMergePolicy()));
w.setInfoStream(VERBOSE ? System.out : null);
LogMergePolicy lmp = (LogMergePolicy) w.getConfig().getMergePolicy();
lmp.setUseCompoundFile(false);
@@ -248,7 +248,7 @@ public class TestStressIndexing2 extends
public static void indexSerial(Random random, Map<String,Document> docs, Directory dir) throws IOException {
- IndexWriter w = new IndexWriter(dir, LuceneTestCase.newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
+ IndexWriter w = new IndexWriter(dir, LuceneTestCase.newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newLogMergePolicy()));
// index all docs in a single thread
Iterator<Document> iter = docs.values().iterator();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
Binary files - no diff available.
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
Binary files - no diff available.
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java Wed Feb 9 09:35:27 2011
@@ -53,6 +53,7 @@ import org.apache.lucene.search.ScoreDoc
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException;
+import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.FloatsRef;
import org.apache.lucene.util.LongsRef;
@@ -87,13 +88,19 @@ public class TestDocValuesIndexing exten
provider = new DocValuesCodecProvider();
provider.copyFrom(CodecProvider.getDefault());
}
+
+ private Directory newDirectory2() throws IOException {
+ MockDirectoryWrapper newDirectory = newDirectory();
+ newDirectory.setCheckIndexOnClose(false);
+ return newDirectory;
+ }
/*
* Simple test case to show how to use the API
*/
public void testDocValuesSimple() throws CorruptIndexException, IOException,
ParseException {
- Directory dir = newDirectory();
+ Directory dir = newDirectory2();
IndexWriter writer = new IndexWriter(dir, writerConfig(false));
for (int i = 0; i < 5; i++) {
Document doc = new Document();
@@ -175,7 +182,7 @@ public class TestDocValuesIndexing exten
Type second = values.get(1);
String msg = "[first=" + first.name() + ", second=" + second.name() + "]";
// index first index
- Directory d_1 = newDirectory();
+ Directory d_1 = newDirectory2();
IndexWriter w_1 = new IndexWriter(d_1, writerConfig(random.nextBoolean()));
indexValues(w_1, valuesPerIndex, first, values, false, 7);
w_1.commit();
@@ -183,17 +190,17 @@ public class TestDocValuesIndexing exten
_TestUtil.checkIndex(d_1, w_1.getConfig().getCodecProvider());
// index second index
- Directory d_2 = newDirectory();
+ Directory d_2 = newDirectory2();
IndexWriter w_2 = new IndexWriter(d_2, writerConfig(random.nextBoolean()));
indexValues(w_2, valuesPerIndex, second, values, false, 7);
w_2.commit();
assertEquals(valuesPerIndex, w_2.maxDoc());
_TestUtil.checkIndex(d_2, w_2.getConfig().getCodecProvider());
- Directory target = newDirectory();
+ Directory target = newDirectory2();
IndexWriter w = new IndexWriter(target, writerConfig(random.nextBoolean()));
- IndexReader r_1 = IndexReader.open(w_1);
- IndexReader r_2 = IndexReader.open(w_2);
+ IndexReader r_1 = IndexReader.open(w_1, true);
+ IndexReader r_2 = IndexReader.open(w_2, true);
if (random.nextBoolean()) {
w.addIndexes(d_1, d_2);
} else {
@@ -207,7 +214,7 @@ public class TestDocValuesIndexing exten
// check values
- IndexReader merged = IndexReader.open(w);
+ IndexReader merged = IndexReader.open(w, true);
DocValuesEnum vE_1 = getValuesEnum(getDocValues(r_1, first.name()));
DocValuesEnum vE_2 = getValuesEnum(getDocValues(r_2, second.name()));
DocValuesEnum vE_1_merged = getValuesEnum(getDocValues(merged, first.name()));
@@ -243,12 +250,16 @@ public class TestDocValuesIndexing exten
private IndexWriterConfig writerConfig(boolean useCompoundFile) {
final IndexWriterConfig cfg = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer());
+ cfg.setMergePolicy(newLogMergePolicy(random));
MergePolicy mergePolicy = cfg.getMergePolicy();
if (mergePolicy instanceof LogMergePolicy) {
- ((LogMergePolicy) mergePolicy).setUseCompoundFile(useCompoundFile);
+ LogMergePolicy policy = ((LogMergePolicy) mergePolicy);
+ policy.setUseCompoundFile(useCompoundFile);
+ policy.setRequireContiguousMerge(true);
} else if (useCompoundFile) {
LogMergePolicy policy = new LogDocMergePolicy();
policy.setUseCompoundFile(useCompoundFile);
+ policy.setRequireContiguousMerge(true);
cfg.setMergePolicy(policy);
}
cfg.setCodecProvider(provider);
@@ -257,7 +268,7 @@ public class TestDocValuesIndexing exten
public void runTestNumerics(IndexWriterConfig cfg, boolean withDeletions)
throws IOException {
- Directory d = newDirectory();
+ Directory d = newDirectory2();
IndexWriter w = new IndexWriter(d, cfg);
final int numValues = 179 + random.nextInt(151);
final List<Type> numVariantList = new ArrayList<Type>(NUMERICS);
@@ -268,7 +279,7 @@ public class TestDocValuesIndexing exten
OpenBitSet deleted = indexValues(w, numValues, val, numVariantList,
withDeletions, 7);
List<Closeable> closeables = new ArrayList<Closeable>();
- IndexReader r = IndexReader.open(w);
+ IndexReader r = IndexReader.open(w, true);
final int numRemainingValues = (int) (numValues - deleted.cardinality());
final int base = r.numDocs() - numRemainingValues;
switch (val) {
@@ -349,7 +360,7 @@ public class TestDocValuesIndexing exten
public void runTestIndexBytes(IndexWriterConfig cfg, boolean withDeletions)
throws CorruptIndexException, LockObtainFailedException, IOException {
- final Directory d = newDirectory();
+ final Directory d = newDirectory2();
IndexWriter w = new IndexWriter(d, cfg);
final List<Type> byteVariantList = new ArrayList<Type>(BYTES);
// run in random order to test if fill works correctly during merges
@@ -361,7 +372,7 @@ public class TestDocValuesIndexing exten
int bytesSize = 7 + random.nextInt(128);
OpenBitSet deleted = indexValues(w, numValues, byteIndexValue,
byteVariantList, withDeletions, bytesSize);
- final IndexReader r = IndexReader.open(w);
+ final IndexReader r = IndexReader.open(w, withDeletions);
assertEquals(0, r.numDeletedDocs());
final int numRemainingValues = (int) (numValues - deleted.cardinality());
final int base = r.numDocs() - numRemainingValues;
@@ -460,7 +471,6 @@ public class TestDocValuesIndexing exten
private DocValues getDocValues(IndexReader reader, String field)
throws IOException {
boolean optimized = reader.isOptimized();
- reader.isCurrent();
Fields fields = optimized ? reader.getSequentialSubReaders()[0].fields()
: MultiFields.getFields(reader);
switch (random.nextInt(optimized ? 3 : 2)) { // case 2 only if optimized
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/queryParser/TestQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/queryParser/TestQueryParser.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/queryParser/TestQueryParser.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/queryParser/TestQueryParser.java Wed Feb 9 09:35:27 2011
@@ -1140,12 +1140,13 @@ public class TestQueryParser extends Luc
Document doc = new Document();
doc.add(newField("f", "the wizard of ozzy", Field.Store.NO, Field.Index.ANALYZED));
w.addDocument(doc);
- IndexReader r = IndexReader.open(w);
+ IndexReader r = IndexReader.open(w, true);
w.close();
- IndexSearcher s = new IndexSearcher(r);
+ IndexSearcher s = newSearcher(r);
QueryParser qp = new QueryParser(TEST_VERSION_CURRENT, "f", a);
Query q = qp.parse("\"wizard of ozzy\"");
assertEquals(1, s.search(q, 1).totalHits);
+ s.close();
r.close();
dir.close();
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/BaseTestRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/BaseTestRangeFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/BaseTestRangeFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/BaseTestRangeFilter.java Wed Feb 9 09:35:27 2011
@@ -124,14 +124,14 @@ public class BaseTestRangeFilter extends
RandomIndexWriter writer = new RandomIndexWriter(random, index.index,
newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
- .setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(_TestUtil.nextInt(random, 50, 1000)));
+ .setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(_TestUtil.nextInt(random, 50, 1000)).setMergePolicy(newLogMergePolicy()));
+ _TestUtil.reduceOpenFiles(writer.w);
+
while(true) {
int minCount = 0;
int maxCount = 0;
- _TestUtil.reduceOpenFiles(writer.w);
-
for (int d = minId; d <= maxId; d++) {
idField.setValue(pad(d));
int r = index.allowNegativeRandomInts ? random.nextInt() : random
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java Wed Feb 9 09:35:27 2011
@@ -20,7 +20,8 @@ package org.apache.lucene.search;
import java.io.IOException;
import junit.framework.Assert;
-import org.apache.lucene.index.IndexReader;
+
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
/**
* A unit test helper class to test when the filter is getting cached and when it is not.
@@ -41,10 +42,10 @@ public class CachingWrapperFilterHelper
}
@Override
- public synchronized DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public synchronized DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
final int saveMissCount = missCount;
- DocIdSet docIdSet = super.getDocIdSet(reader);
+ DocIdSet docIdSet = super.getDocIdSet(context);
if (shouldHaveCache) {
Assert.assertEquals("Cache should have data ", saveMissCount, missCount);
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java Wed Feb 9 09:35:27 2011
@@ -19,8 +19,9 @@ package org.apache.lucene.search;
import java.io.IOException;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.util.PriorityQueue;
/**
@@ -42,7 +43,7 @@ final class JustCompileSearch {
}
@Override
- public void setNextReader(IndexReader reader, int docBase)
+ public void setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -125,7 +126,7 @@ final class JustCompileSearch {
}
@Override
- public FieldComparator setNextReader(IndexReader reader, int docBase)
+ public FieldComparator setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -152,7 +153,7 @@ final class JustCompileSearch {
// still added here in case someone will add abstract methods in the future.
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
return null;
}
}
@@ -208,12 +209,12 @@ final class JustCompileSearch {
static final class JustCompileScorer extends Scorer {
- protected JustCompileScorer(Similarity similarity) {
- super(similarity);
+ protected JustCompileScorer(Weight weight) {
+ super(weight);
}
@Override
- protected boolean score(Collector collector, int max, int firstDocID)
+ public boolean score(Collector collector, int max, int firstDocID)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -242,46 +243,50 @@ final class JustCompileSearch {
static final class JustCompileSimilarity extends Similarity {
@Override
- public float coord(int overlap, int maxOverlap) {
+ public float idf(int docFreq, int numDocs) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@Override
- public float idf(int docFreq, int numDocs) {
+ public float computeNorm(String fieldName, FieldInvertState state) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@Override
- public float lengthNorm(String fieldName, int numTokens) {
+ public float sloppyFreq(int distance) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@Override
- public float queryNorm(float sumOfSquaredWeights) {
+ public float tf(float freq) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
+ }
+ }
+
+ static final class JustCompileSimilarityProvider implements SimilarityProvider {
- @Override
- public float sloppyFreq(int distance) {
+ public float queryNorm(float sumOfSquaredWeights) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
-
- @Override
- public float tf(float freq) {
+
+ public float coord(int overlap, int maxOverlap) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
+ public Similarity get(String field) {
+ throw new UnsupportedOperationException(UNSUPPORTED_MSG);
+ }
}
static final class JustCompileSpanFilter extends SpanFilter {
@Override
- public SpanFilterResult bitSpans(IndexReader reader) throws IOException {
+ public SpanFilterResult bitSpans(AtomicReaderContext context) throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
return null;
}
}
@@ -298,7 +303,7 @@ final class JustCompileSearch {
}
@Override
- public void setNextReader(IndexReader reader, int docBase)
+ public void setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -333,7 +338,7 @@ final class JustCompileSearch {
static final class JustCompileWeight extends Weight {
@Override
- public Explanation explain(IndexReader reader, int doc) throws IOException {
+ public Explanation explain(AtomicReaderContext context, int doc) throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -358,7 +363,7 @@ final class JustCompileSearch {
}
@Override
- public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer)
+ public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MockFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MockFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MockFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MockFilter.java Wed Feb 9 09:35:27 2011
@@ -17,7 +17,7 @@ package org.apache.lucene.search;
* limitations under the License.
*/
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.util.DocIdBitSet;
import java.util.BitSet;
@@ -25,7 +25,7 @@ public class MockFilter extends Filter {
private boolean wasCalled;
@Override
- public DocIdSet getDocIdSet(IndexReader reader) {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) {
wasCalled = true;
return new DocIdBitSet(new BitSet());
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java Wed Feb 9 09:35:27 2011
@@ -19,7 +19,7 @@ package org.apache.lucene.search;
import java.io.IOException;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.search.Collector;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.util.LuceneTestCase;
@@ -46,7 +46,7 @@ public class MultiCollectorTest extends
}
@Override
- public void setNextReader(IndexReader reader, int docBase) throws IOException {
+ public void setNextReader(AtomicReaderContext context) throws IOException {
setNextReaderCalled = true;
}
@@ -73,7 +73,7 @@ public class MultiCollectorTest extends
assertTrue(c instanceof MultiCollector);
assertTrue(c.acceptsDocsOutOfOrder());
c.collect(1);
- c.setNextReader(null, 0);
+ c.setNextReader(null);
c.setScorer(null);
}
@@ -95,7 +95,7 @@ public class MultiCollectorTest extends
Collector c = MultiCollector.wrap(dcs);
assertTrue(c.acceptsDocsOutOfOrder());
c.collect(1);
- c.setNextReader(null, 0);
+ c.setNextReader(null);
c.setScorer(null);
for (DummyCollector dc : dcs) {
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/SingleDocTestFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/SingleDocTestFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/SingleDocTestFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/SingleDocTestFilter.java Wed Feb 9 09:35:27 2011
@@ -17,7 +17,7 @@ package org.apache.lucene.search;
* limitations under the License.
*/
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.util.DocIdBitSet;
import java.util.BitSet;
@@ -31,8 +31,8 @@ public class SingleDocTestFilter extends
}
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
- BitSet bits = new BitSet(reader.maxDoc());
+ public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
+ BitSet bits = new BitSet(context.reader.maxDoc());
bits.set(doc);
return new DocIdBitSet(bits);
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQuery.java Wed Feb 9 09:35:27 2011
@@ -40,6 +40,7 @@ public class TestAutomatonQuery extends
private final String FN = "field";
+ @Override
public void setUp() throws Exception {
super.setUp();
directory = newDirectory();
@@ -61,10 +62,11 @@ public class TestAutomatonQuery extends
+ " with numbers 1234 5678.9 and letter b");
writer.addDocument(doc);
reader = writer.getReader();
- searcher = new IndexSearcher(reader);
+ searcher = newSearcher(reader);
writer.close();
}
+ @Override
public void tearDown() throws Exception {
searcher.close();
reader.close();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java Wed Feb 9 09:35:27 2011
@@ -41,6 +41,7 @@ public class TestAutomatonQueryUnicode e
private final String FN = "field";
+ @Override
public void setUp() throws Exception {
super.setUp();
directory = newDirectory();
@@ -81,10 +82,11 @@ public class TestAutomatonQueryUnicode e
field.setValue("\uFFFD\uFFFD");
writer.addDocument(doc);
reader = writer.getReader();
- searcher = new IndexSearcher(reader);
+ searcher = newSearcher(reader);
writer.close();
}
+ @Override
public void tearDown() throws Exception {
searcher.close();
reader.close();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBoolean2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBoolean2.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBoolean2.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBoolean2.java Wed Feb 9 09:35:27 2011
@@ -54,7 +54,7 @@ public class TestBoolean2 extends Lucene
@BeforeClass
public static void beforeClass() throws Exception {
directory = newDirectory();
- RandomIndexWriter writer= new RandomIndexWriter(random, directory);
+ RandomIndexWriter writer= new RandomIndexWriter(random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
for (int i = 0; i < docFields.length; i++) {
Document doc = new Document();
doc.add(newField(field, docFields[i], Field.Store.NO, Field.Index.ANALYZED));
@@ -92,7 +92,7 @@ public class TestBoolean2 extends Lucene
w.addDocument(doc);
}
reader = w.getReader();
- bigSearcher = new IndexSearcher(reader);
+ bigSearcher = newSearcher(reader);
w.close();
}
@@ -208,9 +208,9 @@ public class TestBoolean2 extends Lucene
public void testQueries10() throws Exception {
String queryText = "+w3 +xx +w2 zz";
int[] expDocNrs = {2, 3};
- Similarity oldSimilarity = searcher.getSimilarity();
+ SimilarityProvider oldSimilarity = searcher.getSimilarityProvider();
try {
- searcher.setSimilarity(new DefaultSimilarity(){
+ searcher.setSimilarityProvider(new DefaultSimilarity(){
@Override
public float coord(int overlap, int maxOverlap) {
return overlap / ((float)maxOverlap - 1);
@@ -218,7 +218,7 @@ public class TestBoolean2 extends Lucene
});
queriesTest(queryText, expDocNrs);
} finally {
- searcher.setSimilarity(oldSimilarity);
+ searcher.setSimilarityProvider(oldSimilarity);
}
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java Wed Feb 9 09:35:27 2011
@@ -65,7 +65,7 @@ public class TestBooleanMinShouldMatch e
}
r = w.getReader();
- s = new IndexSearcher(r);
+ s = newSearcher(r);
w.close();
//System.out.println("Set up " + getName());
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanOr.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanOr.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanOr.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanOr.java Wed Feb 9 09:35:27 2011
@@ -154,7 +154,7 @@ public class TestBooleanOr extends Lucen
reader = writer.getReader();
//
- searcher = new IndexSearcher(reader);
+ searcher = newSearcher(reader);
writer.close();
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanQuery.java Wed Feb 9 09:35:27 2011
@@ -17,13 +17,21 @@ package org.apache.lucene.search;
* limitations under the License.
*/
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.RandomIndexWriter;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiReader;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.index.Term;
+import org.apache.lucene.util.NamedThreadFactory;
public class TestBooleanQuery extends LuceneTestCase {
@@ -65,7 +73,7 @@ public class TestBooleanQuery extends Lu
w.addDocument(doc);
IndexReader r = w.getReader();
- IndexSearcher s = new IndexSearcher(r);
+ IndexSearcher s = newSearcher(r);
BooleanQuery q = new BooleanQuery();
q.add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD);
@@ -112,9 +120,50 @@ public class TestBooleanQuery extends Lu
dmq.add(pq);
assertEquals(1, s.search(dmq, 10).totalHits);
+ s.close();
r.close();
w.close();
dir.close();
}
-
+
+ public void testDeMorgan() throws Exception {
+ Directory dir1 = newDirectory();
+ RandomIndexWriter iw1 = new RandomIndexWriter(random, dir1);
+ Document doc1 = new Document();
+ doc1.add(newField("field", "foo bar", Field.Index.ANALYZED));
+ iw1.addDocument(doc1);
+ IndexReader reader1 = iw1.getReader();
+ iw1.close();
+
+ Directory dir2 = newDirectory();
+ RandomIndexWriter iw2 = new RandomIndexWriter(random, dir2);
+ Document doc2 = new Document();
+ doc2.add(newField("field", "foo baz", Field.Index.ANALYZED));
+ iw2.addDocument(doc2);
+ IndexReader reader2 = iw2.getReader();
+ iw2.close();
+
+ QueryParser qp = new QueryParser(TEST_VERSION_CURRENT, "field", new MockAnalyzer());
+ qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
+
+ MultiReader multireader = new MultiReader(reader1, reader2);
+ IndexSearcher searcher = new IndexSearcher(multireader);
+ assertEquals(0, searcher.search(qp.parse("+foo -ba*"), 10).totalHits);
+
+ final ExecutorService es = Executors.newCachedThreadPool(new NamedThreadFactory("NRT search threads"));
+ searcher = new IndexSearcher(multireader, es);
+ if (VERBOSE)
+ System.out.println("rewritten form: " + searcher.rewrite(qp.parse("+foo -ba*")));
+ assertEquals(0, searcher.search(qp.parse("+foo -ba*"), 10).totalHits);
+ es.shutdown();
+ es.awaitTermination(1, TimeUnit.SECONDS);
+
+ multireader.close();
+ reader1.close();
+ reader2.close();
+ dir1.close();
+ dir2.close();
+ }
}
+
+
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanScorer.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanScorer.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestBooleanScorer.java Wed Feb 9 09:35:27 2011
@@ -25,6 +25,7 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
+import org.apache.lucene.search.BooleanQuery.BooleanWeight;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
@@ -55,9 +56,10 @@ public class TestBooleanScorer extends L
query.add(booleanQuery1, BooleanClause.Occur.MUST);
query.add(new TermQuery(new Term(FIELD, "9")), BooleanClause.Occur.MUST_NOT);
- IndexSearcher indexSearcher = new IndexSearcher(ir);
+ IndexSearcher indexSearcher = newSearcher(ir);
ScoreDoc[] hits = indexSearcher.search(query, null, 1000).scoreDocs;
assertEquals("Number of matched documents", 2, hits.length);
+ indexSearcher.close();
ir.close();
directory.close();
}
@@ -68,8 +70,14 @@ public class TestBooleanScorer extends L
// 'more' variable to work properly, and this test ensures that if the logic
// changes, we have a test to back it up.
- Similarity sim = Similarity.getDefault();
- Scorer[] scorers = new Scorer[] {new Scorer(sim) {
+ 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);
+ Scorer[] scorers = new Scorer[] {new Scorer(weight) {
private int doc = -1;
@Override public float score() throws IOException { return 0; }
@Override public int docID() { return doc; }
@@ -83,10 +91,15 @@ public class TestBooleanScorer extends L
}
}};
- BooleanScorer bs = new BooleanScorer(null, sim, 1, Arrays.asList(scorers), null, scorers.length);
+
+ BooleanScorer bs = new BooleanScorer(weight, false, 1, Arrays.asList(scorers), null, scorers.length);
assertEquals("should have received 3000", 3000, bs.nextDoc());
assertEquals("should have received NO_MORE_DOCS", DocIdSetIterator.NO_MORE_DOCS, bs.nextDoc());
+ searcher.close();
+ ir.close();
+ directory.close();
+
}
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java Wed Feb 9 09:35:27 2011
@@ -47,8 +47,8 @@ public class TestCachingSpanFilter exten
// flipping a coin) may give us a newly opened reader,
// but we use .reopen on this reader below and expect to
// (must) get an NRT reader:
- IndexReader reader = IndexReader.open(writer.w);
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexReader reader = IndexReader.open(writer.w, true);
+ IndexSearcher searcher = newSearcher(reader);
// add a doc, refresh the reader, and check that its there
Document doc = new Document();
@@ -56,7 +56,8 @@ public class TestCachingSpanFilter exten
writer.addDocument(doc);
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
TopDocs docs = searcher.search(new MatchAllDocsQuery(), 1);
assertEquals("Should find a hit...", 1, docs.totalHits);
@@ -76,7 +77,8 @@ public class TestCachingSpanFilter exten
writer.deleteDocuments(new Term("id", "1"));
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -90,7 +92,8 @@ public class TestCachingSpanFilter exten
writer.addDocument(doc);
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should find a hit...", 1, docs.totalHits);
@@ -108,7 +111,8 @@ public class TestCachingSpanFilter exten
// that had no new deletions
reader = refreshReader(reader);
assertTrue(reader != oldReader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
int missCount = filter.missCount;
docs = searcher.search(constantScore, 1);
assertEquals("[just filter] Should find a hit...", 1, docs.totalHits);
@@ -118,7 +122,8 @@ public class TestCachingSpanFilter exten
writer.deleteDocuments(new Term("id", "1"));
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -132,6 +137,7 @@ public class TestCachingSpanFilter exten
// entry:
assertTrue(oldReader != null);
+ searcher.close();
writer.close();
reader.close();
dir.close();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Wed Feb 9 09:35:27 2011
@@ -23,6 +23,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.SerialMergeScheduler;
import org.apache.lucene.index.SlowMultiReaderWrapper;
@@ -39,21 +40,21 @@ public class TestCachingWrapperFilter ex
RandomIndexWriter writer = new RandomIndexWriter(random, dir);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
-
+ IndexReader reader = new SlowMultiReaderWrapper(IndexReader.open(dir, true));
+ AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
MockFilter filter = new MockFilter();
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
// first time, nested filter is called
- cacher.getDocIdSet(reader);
+ cacher.getDocIdSet(context);
assertTrue("first time", filter.wasCalled());
// make sure no exception if cache is holding the wrong docIdSet
- cacher.getDocIdSet(reader);
+ cacher.getDocIdSet(context);
// second time, nested filter should not be called
filter.clear();
- cacher.getDocIdSet(reader);
+ cacher.getDocIdSet(context);
assertFalse("second time", filter.wasCalled());
reader.close();
@@ -65,18 +66,19 @@ public class TestCachingWrapperFilter ex
RandomIndexWriter writer = new RandomIndexWriter(random, dir);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = new SlowMultiReaderWrapper(IndexReader.open(dir, true));
+ AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
final Filter filter = new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) {
return null;
}
};
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
// the caching filter should return the empty set constant
- assertSame(DocIdSet.EMPTY_DOCIDSET, cacher.getDocIdSet(reader));
+ assertSame(DocIdSet.EMPTY_DOCIDSET, cacher.getDocIdSet(context));
reader.close();
dir.close();
@@ -87,11 +89,12 @@ public class TestCachingWrapperFilter ex
RandomIndexWriter writer = new RandomIndexWriter(random, dir);
writer.close();
- IndexReader reader = IndexReader.open(dir, true);
+ IndexReader reader = new SlowMultiReaderWrapper(IndexReader.open(dir, true));
+ AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
final Filter filter = new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) {
return new DocIdSet() {
@Override
public DocIdSetIterator iterator() {
@@ -103,16 +106,18 @@ public class TestCachingWrapperFilter ex
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
// the caching filter should return the empty set constant
- assertSame(DocIdSet.EMPTY_DOCIDSET, cacher.getDocIdSet(reader));
+ assertSame(DocIdSet.EMPTY_DOCIDSET, cacher.getDocIdSet(context));
reader.close();
dir.close();
}
private static void assertDocIdSetCacheable(IndexReader reader, Filter filter, boolean shouldCacheable) throws IOException {
+ assertTrue(reader.getTopReaderContext().isAtomic);
+ AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
final CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
- final DocIdSet originalSet = filter.getDocIdSet(reader);
- final DocIdSet cachedSet = cacher.getDocIdSet(reader);
+ final DocIdSet originalSet = filter.getDocIdSet(context);
+ final DocIdSet cachedSet = cacher.getDocIdSet(context);
assertTrue(cachedSet.isCacheable());
assertEquals(shouldCacheable, originalSet.isCacheable());
//System.out.println("Original: "+originalSet.getClass().getName()+" -- cached: "+cachedSet.getClass().getName());
@@ -140,7 +145,7 @@ public class TestCachingWrapperFilter ex
// a openbitset filter is always cacheable
assertDocIdSetCacheable(reader, new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) {
return new OpenBitSet();
}
}, true);
@@ -164,8 +169,8 @@ public class TestCachingWrapperFilter ex
// flipping a coin) may give us a newly opened reader,
// but we use .reopen on this reader below and expect to
// (must) get an NRT reader:
- IndexReader reader = IndexReader.open(writer.w);
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexReader reader = IndexReader.open(writer.w, true);
+ IndexSearcher searcher = newSearcher(reader);
// add a doc, refresh the reader, and check that its there
Document doc = new Document();
@@ -173,7 +178,8 @@ public class TestCachingWrapperFilter ex
writer.addDocument(doc);
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
TopDocs docs = searcher.search(new MatchAllDocsQuery(), 1);
assertEquals("Should find a hit...", 1, docs.totalHits);
@@ -193,7 +199,8 @@ public class TestCachingWrapperFilter ex
writer.deleteDocuments(new Term("id", "1"));
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -208,7 +215,8 @@ public class TestCachingWrapperFilter ex
writer.addDocument(doc);
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
@@ -227,7 +235,8 @@ public class TestCachingWrapperFilter ex
// that had no change to deletions
reader = refreshReader(reader);
assertTrue(reader != oldReader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
int missCount = filter.missCount;
docs = searcher.search(constantScore, 1);
assertEquals("[just filter] Should find a hit...", 1, docs.totalHits);
@@ -237,7 +246,8 @@ public class TestCachingWrapperFilter ex
writer.deleteDocuments(new Term("id", "1"));
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
missCount = filter.missCount;
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
@@ -252,7 +262,8 @@ public class TestCachingWrapperFilter ex
writer.addDocument(doc);
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should find a hit...", 1, docs.totalHits);
@@ -264,7 +275,8 @@ public class TestCachingWrapperFilter ex
writer.deleteDocuments(new Term("id", "1"));
reader = refreshReader(reader);
- searcher = new IndexSearcher(reader);
+ searcher.close();
+ searcher = newSearcher(reader);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -282,6 +294,7 @@ public class TestCachingWrapperFilter ex
// entry:
assertTrue(oldReader != null);
+ searcher.close();
reader.close();
writer.close();
dir.close();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestComplexExplanations.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestComplexExplanations.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestComplexExplanations.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestComplexExplanations.java Wed Feb 9 09:35:27 2011
@@ -34,7 +34,13 @@ public class TestComplexExplanations ext
@Override
public void setUp() throws Exception {
super.setUp();
- searcher.setSimilarity(createQnorm1Similarity());
+ searcher.setSimilarityProvider(createQnorm1Similarity());
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ searcher.close();
+ super.tearDown();
}
// must be static for weight serialization tests
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestConstantScoreQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestConstantScoreQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestConstantScoreQuery.java Wed Feb 9 09:35:27 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.search;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
@@ -68,7 +69,7 @@ public class TestConstantScoreQuery exte
}
@Override
- public void setNextReader(IndexReader reader, int docBase) {
+ public void setNextReader(AtomicReaderContext context) {
}
@Override
@@ -93,10 +94,10 @@ public class TestConstantScoreQuery exte
reader = writer.getReader();
writer.close();
- searcher = new IndexSearcher(reader);
+ searcher = newSearcher(reader);
// set a similarity that does not normalize our boost away
- searcher.setSimilarity(new DefaultSimilarity() {
+ searcher.setSimilarityProvider(new DefaultSimilarity() {
@Override
public float queryNorm(float sumOfSquaredWeights) {
return 1.0f;
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateFilter.java Wed Feb 9 09:35:27 2011
@@ -57,7 +57,7 @@ public class TestDateFilter extends Luce
IndexReader reader = writer.getReader();
writer.close();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
// filter that should preserve matches
// DateFilter df1 = DateFilter.Before("datefield", now);
@@ -98,6 +98,7 @@ public class TestDateFilter extends Luce
result = searcher.search(query2, df2, 1000).scoreDocs;
assertEquals(0, result.length);
+ searcher.close();
reader.close();
indexStore.close();
}
@@ -123,7 +124,7 @@ public class TestDateFilter extends Luce
IndexReader reader = writer.getReader();
writer.close();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
// filter that should preserve matches
// DateFilter df1 = DateFilter.After("datefield", now);
@@ -165,6 +166,7 @@ public class TestDateFilter extends Luce
result = searcher.search(query2, df2, 1000).scoreDocs;
assertEquals(0, result.length);
+ searcher.close();
reader.close();
indexStore.close();
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateSort.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateSort.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDateSort.java Wed Feb 9 09:35:27 2011
@@ -28,7 +28,6 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
@@ -78,7 +77,7 @@ public class TestDateSort extends Lucene
}
public void testReverseDateSort() throws Exception {
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
Sort sort = new Sort(new SortField(DATE_TIME_FIELD, SortField.STRING, true));
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Wed Feb 9 09:35:27 2011
@@ -22,9 +22,12 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.SlowMultiReaderWrapper;
+import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
+import org.apache.lucene.search.Weight.ScorerContext;
import org.apache.lucene.store.Directory;
import java.text.DecimalFormat;
@@ -59,8 +62,9 @@ public class TestDisjunctionMaxQuery ext
}
@Override
- public float lengthNorm(String fieldName, int numTerms) {
- return 1.0f;
+ public float computeNorm(String fieldName, FieldInvertState state) {
+ // Disable length norm
+ return state.getBoost();
}
@Override
@@ -69,7 +73,7 @@ public class TestDisjunctionMaxQuery ext
}
}
- public Similarity sim = new TestSimilarity();
+ public SimilarityProvider sim = new TestSimilarity();
public Directory index;
public IndexReader r;
public IndexSearcher s;
@@ -81,7 +85,7 @@ public class TestDisjunctionMaxQuery ext
index = newDirectory();
RandomIndexWriter writer = new RandomIndexWriter(random, index,
newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer())
- .setSimilarity(sim));
+ .setSimilarityProvider(sim).setMergePolicy(newInOrderLogMergePolicy()));
// hed is the most important field, dek is secondary
@@ -145,8 +149,8 @@ public class TestDisjunctionMaxQuery ext
r = new SlowMultiReaderWrapper(writer.getReader());
writer.close();
- s = new IndexSearcher(r);
- s.setSimilarity(sim);
+ s = newSearcher(r);
+ s.setSimilarityProvider(sim);
}
@Override
@@ -163,9 +167,9 @@ public class TestDisjunctionMaxQuery ext
dq.add(tq("dek", "DOES_NOT_EXIST"));
QueryUtils.check(random, dq, s);
-
+ assertTrue(s.getTopReaderContext().isAtomic);
final Weight dw = dq.weight(s);
- final Scorer ds = dw.scorer(s.getIndexReader(), true, false);
+ final Scorer ds = dw.scorer((AtomicReaderContext)s.getTopReaderContext(), ScorerContext.def());
final boolean skipOk = ds.advance(3) != DocIdSetIterator.NO_MORE_DOCS;
if (skipOk) {
fail("firsttime skipTo found a match? ... "
@@ -177,11 +181,10 @@ public class TestDisjunctionMaxQuery ext
final DisjunctionMaxQuery dq = new DisjunctionMaxQuery(0.0f);
dq.add(tq("dek", "albino"));
dq.add(tq("dek", "DOES_NOT_EXIST"));
-
+ assertTrue(s.getTopReaderContext().isAtomic);
QueryUtils.check(random, dq, s);
-
final Weight dw = dq.weight(s);
- final Scorer ds = dw.scorer(s.getIndexReader(), true, false);
+ final Scorer ds = dw.scorer((AtomicReaderContext)s.getTopReaderContext(), ScorerContext.def());
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/docvalues/lucene/src/test/org/apache/lucene/search/TestDocBoost.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocBoost.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocBoost.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocBoost.java Wed Feb 9 09:35:27 2011
@@ -19,12 +19,14 @@ package org.apache.lucene.search;
import java.io.IOException;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.*;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
/** Document boost unit test.
*
@@ -35,7 +37,7 @@ public class TestDocBoost extends Lucene
public void testDocBoost() throws Exception {
Directory store = newDirectory();
- RandomIndexWriter writer = new RandomIndexWriter(random, store);
+ RandomIndexWriter writer = new RandomIndexWriter(random, store, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
Fieldable f1 = newField("field", "word", Field.Store.YES, Field.Index.ANALYZED);
Fieldable f2 = newField("field", "word", Field.Store.YES, Field.Index.ANALYZED);
@@ -63,7 +65,7 @@ public class TestDocBoost extends Lucene
final float[] scores = new float[4];
- new IndexSearcher(reader).search
+ newSearcher(reader).search
(new TermQuery(new Term("field", "word")),
new Collector() {
private int base = 0;
@@ -77,8 +79,8 @@ public class TestDocBoost extends Lucene
scores[doc + base] = scorer.score();
}
@Override
- public void setNextReader(IndexReader reader, int docBase) {
- base = docBase;
+ public void setNextReader(AtomicReaderContext context) {
+ base = context.docBase;
}
@Override
public boolean acceptsDocsOutOfOrder() {
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocIdSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocIdSet.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocIdSet.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestDocIdSet.java Wed Feb 9 09:35:27 2011
@@ -28,6 +28,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
@@ -108,13 +109,13 @@ public class TestDocIdSet extends Lucene
writer.close();
// First verify the document is searchable.
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
Assert.assertEquals(1, searcher.search(new MatchAllDocsQuery(), 10).totalHits);
// Now search w/ a Filter which returns a null DocIdSet
Filter f = new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
return null;
}
};
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestElevationComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestElevationComparator.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestElevationComparator.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestElevationComparator.java Wed Feb 9 09:35:27 2011
@@ -21,6 +21,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.*;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.search.FieldValueHitQueue.Entry;
import org.apache.lucene.store.*;
import org.apache.lucene.util.LuceneTestCase;
@@ -49,10 +50,10 @@ public class TestElevationComparator ext
writer.addDocument(adoc(new String[] {"id", "y", "title", "boosted boosted", "str_s","y"}));
writer.addDocument(adoc(new String[] {"id", "z", "title", "boosted boosted boosted","str_s", "z"}));
- IndexReader r = IndexReader.open(writer);
+ IndexReader r = IndexReader.open(writer, true);
writer.close();
- IndexSearcher searcher = new IndexSearcher(r);
+ IndexSearcher searcher = newSearcher(r);
runTest(searcher, true);
runTest(searcher, false);
@@ -177,8 +178,8 @@ class ElevationComparatorSource extends
}
@Override
- public FieldComparator setNextReader(IndexReader reader, int docBase) throws IOException {
- idIndex = FieldCache.DEFAULT.getTermsIndex(reader, fieldname);
+ public FieldComparator setNextReader(AtomicReaderContext context) throws IOException {
+ idIndex = FieldCache.DEFAULT.getTermsIndex(context.reader, fieldname);
return this;
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestExplanations.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestExplanations.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestExplanations.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestExplanations.java Wed Feb 9 09:35:27 2011
@@ -68,7 +68,7 @@ public class TestExplanations extends Lu
public void setUp() throws Exception {
super.setUp();
directory = newDirectory();
- RandomIndexWriter writer= new RandomIndexWriter(random, directory);
+ RandomIndexWriter writer= new RandomIndexWriter(random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
for (int i = 0; i < docFields.length; i++) {
Document doc = new Document();
doc.add(newField(KEY, ""+i, Field.Store.NO, Field.Index.NOT_ANALYZED));
@@ -77,7 +77,7 @@ public class TestExplanations extends Lu
}
reader = writer.getReader();
writer.close();
- searcher = new IndexSearcher(reader);
+ searcher = newSearcher(reader);
}
protected String[] docFields = {
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCache.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCache.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCache.java Wed Feb 9 09:35:27 2011
@@ -41,7 +41,7 @@ public class TestFieldCache extends Luce
public void setUp() throws Exception {
super.setUp();
directory = newDirectory();
- RandomIndexWriter writer= new RandomIndexWriter(random, directory);
+ RandomIndexWriter writer= new RandomIndexWriter(random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
long theLong = Long.MAX_VALUE;
double theDouble = Double.MAX_VALUE;
byte theByte = Byte.MAX_VALUE;
@@ -49,6 +49,10 @@ public class TestFieldCache extends Luce
int theInt = Integer.MAX_VALUE;
float theFloat = Float.MAX_VALUE;
unicodeStrings = new String[NUM_DOCS];
+ if (VERBOSE) {
+ System.out.println("TEST: setUp");
+ }
+ writer.w.setInfoStream(VERBOSE ? System.out : null);
for (int i = 0; i < NUM_DOCS; i++){
Document doc = new Document();
doc.add(newField("theLong", String.valueOf(theLong--), Field.Store.NO, Field.Index.NOT_ANALYZED));
@@ -117,7 +121,7 @@ public class TestFieldCache extends Luce
assertSame("Second request with explicit parser return same array", longs, cache.getLongs(reader, "theLong", FieldCache.DEFAULT_LONG_PARSER));
assertTrue("longs Size: " + longs.length + " is not: " + NUM_DOCS, longs.length == NUM_DOCS);
for (int i = 0; i < longs.length; i++) {
- assertTrue(longs[i] + " does not equal: " + (Long.MAX_VALUE - i), longs[i] == (Long.MAX_VALUE - i));
+ assertTrue(longs[i] + " does not equal: " + (Long.MAX_VALUE - i) + " i=" + i, longs[i] == (Long.MAX_VALUE - i));
}
@@ -210,7 +214,7 @@ public class TestFieldCache extends Luce
public void testEmptyIndex() throws Exception {
Directory dir = newDirectory();
IndexWriter writer= new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(500));
- IndexReader r = IndexReader.open(writer);
+ IndexReader r = IndexReader.open(writer, true);
FieldCache.DocTerms terms = FieldCache.DEFAULT.getTerms(r, "foobar");
FieldCache.DocTermsIndex termsIndex = FieldCache.DEFAULT.getTermsIndex(r, "foobar");
r.close();
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java Wed Feb 9 09:35:27 2011
@@ -44,7 +44,7 @@ public class TestFieldCacheRangeFilter e
public void testRangeFilterId() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int medId = ((maxId - minId) / 2);
@@ -122,14 +122,14 @@ public class TestFieldCacheRangeFilter e
result = search.search(q,FieldCacheRangeFilter.newStringRange("id",medIP,medIP,T,T), numDocs).scoreDocs;
assertEquals("med,med,T,T", 1, result.length);
-
+ search.close();
}
@Test
public void testFieldCacheRangeFilterRand() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
String minRP = pad(signedIndexDir.minR);
String maxRP = pad(signedIndexDir.maxR);
@@ -185,6 +185,7 @@ public class TestFieldCacheRangeFilter e
assertEquals("max,max,T,T", 1, result.length);
result = search.search(q,FieldCacheRangeFilter.newStringRange("rand",maxRP,null,T,F), numDocs).scoreDocs;
assertEquals("max,nul,T,T", 1, result.length);
+ search.close();
}
// byte-ranges cannot be tested, because all ranges are too big for bytes, need an extra range for that
@@ -193,7 +194,7 @@ public class TestFieldCacheRangeFilter e
public void testFieldCacheRangeFilterShorts() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int numDocs = reader.numDocs();
int medId = ((maxId - minId) / 2);
@@ -277,13 +278,14 @@ public class TestFieldCacheRangeFilter e
assertEquals("overflow special case", 0, result.length);
result = search.search(q,FieldCacheRangeFilter.newShortRange("id",maxIdO,minIdO,T,T), numDocs).scoreDocs;
assertEquals("inverse range", 0, result.length);
+ search.close();
}
@Test
public void testFieldCacheRangeFilterInts() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int numDocs = reader.numDocs();
int medId = ((maxId - minId) / 2);
@@ -368,13 +370,14 @@ public class TestFieldCacheRangeFilter e
assertEquals("overflow special case", 0, result.length);
result = search.search(q,FieldCacheRangeFilter.newIntRange("id",maxIdO,minIdO,T,T), numDocs).scoreDocs;
assertEquals("inverse range", 0, result.length);
+ search.close();
}
@Test
public void testFieldCacheRangeFilterLongs() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int numDocs = reader.numDocs();
int medId = ((maxId - minId) / 2);
@@ -459,6 +462,7 @@ public class TestFieldCacheRangeFilter e
assertEquals("overflow special case", 0, result.length);
result = search.search(q,FieldCacheRangeFilter.newLongRange("id",maxIdO,minIdO,T,T), numDocs).scoreDocs;
assertEquals("inverse range", 0, result.length);
+ search.close();
}
// float and double tests are a bit minimalistic, but its complicated, because missing precision
@@ -467,7 +471,7 @@ public class TestFieldCacheRangeFilter e
public void testFieldCacheRangeFilterFloats() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int numDocs = reader.numDocs();
Float minIdO = Float.valueOf(minId + .5f);
@@ -490,13 +494,14 @@ public class TestFieldCacheRangeFilter e
assertEquals("infinity special case", 0, result.length);
result = search.search(q,FieldCacheRangeFilter.newFloatRange("id",null,Float.valueOf(Float.NEGATIVE_INFINITY),F,F), numDocs).scoreDocs;
assertEquals("infinity special case", 0, result.length);
+ search.close();
}
@Test
public void testFieldCacheRangeFilterDoubles() throws IOException {
IndexReader reader = signedIndexReader;
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
int numDocs = reader.numDocs();
Double minIdO = Double.valueOf(minId + .5);
@@ -519,6 +524,7 @@ public class TestFieldCacheRangeFilter e
assertEquals("infinity special case", 0, result.length);
result = search.search(q,FieldCacheRangeFilter.newDoubleRange("id",null, Double.valueOf(Double.NEGATIVE_INFINITY),F,F), numDocs).scoreDocs;
assertEquals("infinity special case", 0, result.length);
+ search.close();
}
// test using a sparse index (with deleted docs).
@@ -539,7 +545,7 @@ public class TestFieldCacheRangeFilter e
writer.close();
IndexReader reader = IndexReader.open(dir, true);
- IndexSearcher search = new IndexSearcher(reader);
+ IndexSearcher search = newSearcher(reader);
assertTrue(reader.hasDeletions());
ScoreDoc[] result;
@@ -559,6 +565,7 @@ public class TestFieldCacheRangeFilter e
result = search.search(q,FieldCacheRangeFilter.newByteRange("id",Byte.valueOf((byte) -20),Byte.valueOf((byte) -10),T,T), 100).scoreDocs;
assertEquals("find all", 11, result.length);
+ search.close();
reader.close();
dir.close();
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java Wed Feb 9 09:35:27 2011
@@ -47,7 +47,7 @@ public class TestFieldCacheTermsFilter e
IndexReader reader = w.getReader();
w.close();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
int numDocs = reader.numDocs();
ScoreDoc[] results;
MatchAllDocsQuery q = new MatchAllDocsQuery();
@@ -68,6 +68,7 @@ public class TestFieldCacheTermsFilter e
results = searcher.search(q, new FieldCacheTermsFilter(fieldName, terms.toArray(new String[0])), numDocs).scoreDocs;
assertEquals("Must match 2", 2, results.length);
+ searcher.close();
reader.close();
rd.close();
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredQuery.java Wed Feb 9 09:35:27 2011
@@ -17,16 +17,19 @@ package org.apache.lucene.search;
* limitations under the License.
*/
+import java.util.BitSet;
+
+import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.DocIdBitSet;
-import java.util.BitSet;
+import org.apache.lucene.util.LuceneTestCase;
/**
* FilteredQuery JUnit tests.
@@ -48,7 +51,7 @@ public class TestFilteredQuery extends L
public void setUp() throws Exception {
super.setUp();
directory = newDirectory();
- RandomIndexWriter writer = new RandomIndexWriter (random, directory);
+ RandomIndexWriter writer = new RandomIndexWriter (random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
Document doc = new Document();
doc.add (newField("field", "one two three four five", Field.Store.YES, Field.Index.ANALYZED));
@@ -78,7 +81,7 @@ public class TestFilteredQuery extends L
reader = writer.getReader();
writer.close ();
- searcher = new IndexSearcher (reader);
+ searcher = newSearcher(reader);
query = new TermQuery (new Term ("field", "three"));
filter = newStaticFilterB();
}
@@ -87,7 +90,7 @@ public class TestFilteredQuery extends L
private static Filter newStaticFilterB() {
return new Filter() {
@Override
- public DocIdSet getDocIdSet (IndexReader reader) {
+ public DocIdSet getDocIdSet (AtomicReaderContext context) {
BitSet bitset = new BitSet(5);
bitset.set (1);
bitset.set (3);
@@ -158,7 +161,7 @@ public class TestFilteredQuery extends L
private static Filter newStaticFilterA() {
return new Filter() {
@Override
- public DocIdSet getDocIdSet (IndexReader reader) {
+ public DocIdSet getDocIdSet (AtomicReaderContext context) {
BitSet bitset = new BitSet(5);
bitset.set(0, 5);
return new DocIdBitSet(bitset);
@@ -216,7 +219,7 @@ public class TestFilteredQuery extends L
bq.add(new TermQuery(new Term("field", "two")), BooleanClause.Occur.SHOULD);
ScoreDoc[] hits = searcher.search(query, 1000).scoreDocs;
assertEquals(1, hits.length);
- QueryUtils.check(random, query,searcher);
+ QueryUtils.check(random, query, searcher);
}
}
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredSearch.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredSearch.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFilteredSearch.java Wed Feb 9 09:35:27 2011
@@ -24,7 +24,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -33,6 +33,7 @@ import org.apache.lucene.store.LockObtai
import org.apache.lucene.util.OpenBitSet;
+
/**
*
*/
@@ -45,21 +46,21 @@ public class TestFilteredSearch extends
Directory directory = newDirectory();
int[] filterBits = {1, 36};
SimpleDocIdSetFilter filter = new SimpleDocIdSetFilter(filterBits);
- IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()));
+ IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setMergePolicy(newInOrderLogMergePolicy()));
searchFiltered(writer, directory, filter, enforceSingleSegment);
// run the test on more than one segment
enforceSingleSegment = false;
// reset - it is stateful
filter.reset();
writer.close();
- writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(10));
+ writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(10).setMergePolicy(newInOrderLogMergePolicy()));
// we index 60 docs - this will create 6 segments
searchFiltered(writer, directory, filter, enforceSingleSegment);
writer.close();
directory.close();
}
- public void searchFiltered(IndexWriter writer, Directory directory, SimpleDocIdSetFilter filter, boolean optimize) {
+ public void searchFiltered(IndexWriter writer, Directory directory, Filter filter, boolean optimize) {
try {
for (int i = 0; i < 60; i++) {//Simple docs
Document doc = new Document();
@@ -75,7 +76,6 @@ public class TestFilteredSearch extends
IndexSearcher indexSearcher = new IndexSearcher(directory, true);
- filter.setTopReader(indexSearcher.getIndexReader());
ScoreDoc[] hits = indexSearcher.search(booleanQuery, filter, 1000).scoreDocs;
assertEquals("Number of matched documents", 1, hits.length);
indexSearcher.close();
@@ -89,20 +89,17 @@ public class TestFilteredSearch extends
public static final class SimpleDocIdSetFilter extends Filter {
private final int[] docs;
private int index;
- private IndexReader topReader;
+
public SimpleDocIdSetFilter(int[] docs) {
this.docs = docs;
}
- public void setTopReader(IndexReader r) {
- topReader = r;
- }
-
@Override
- public DocIdSet getDocIdSet(IndexReader reader) {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) {
+ assert context.isAtomic;
final OpenBitSet set = new OpenBitSet();
- int docBase = topReader.getSubReaderDocBase(reader);
- final int limit = docBase+reader.maxDoc();
+ int docBase = context.docBase;
+ final int limit = docBase+context.reader.maxDoc();
for (;index < docs.length; index++) {
final int docId = docs[index];
if(docId > limit)
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery.java Wed Feb 9 09:35:27 2011
@@ -50,7 +50,7 @@ public class TestFuzzyQuery extends Luce
addDoc("ddddd", writer);
IndexReader reader = writer.getReader();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
writer.close();
FuzzyQuery query = new FuzzyQuery(new Term("field", "aaaaa"), FuzzyQuery.defaultMinSimilarity, 0);
@@ -198,7 +198,7 @@ public class TestFuzzyQuery extends Luce
addDoc("segment", writer);
IndexReader reader = writer.getReader();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
writer.close();
FuzzyQuery query;
@@ -309,7 +309,7 @@ public class TestFuzzyQuery extends Luce
IndexReader ir2 = writer2.getReader();
MultiReader mr = new MultiReader(ir1, ir2);
- IndexSearcher searcher = new IndexSearcher(mr);
+ IndexSearcher searcher = newSearcher(mr);
FuzzyQuery fq = new FuzzyQuery(new Term("field", "z123456"), 1f, 0, 2);
TopDocs docs = searcher.search(fq, 2);
assertEquals(5, docs.totalHits); // 5 docs, from the a and b's
@@ -330,7 +330,7 @@ public class TestFuzzyQuery extends Luce
addDoc("segment", writer);
IndexReader reader = writer.getReader();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
writer.close();
Query query;
@@ -368,7 +368,7 @@ public class TestFuzzyQuery extends Luce
addDoc("Lucenne", writer);
IndexReader reader = writer.getReader();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
writer.close();
FuzzyQuery query = new FuzzyQuery(new Term("field", "lucene"));
@@ -413,7 +413,7 @@ public class TestFuzzyQuery extends Luce
Query q = new QueryParser(TEST_VERSION_CURRENT, "field", analyzer).parse( "giga~0.9" );
// 3. search
- IndexSearcher searcher = new IndexSearcher(r);
+ IndexSearcher searcher = newSearcher(r);
ScoreDoc[] hits = searcher.search(q, 10).scoreDocs;
assertEquals(1, hits.length);
assertEquals("Giga byte", searcher.doc(hits[0].doc).get("field"));
@@ -435,7 +435,7 @@ public class TestFuzzyQuery extends Luce
addDoc("test", w);
addDoc("working", w);
IndexReader reader = w.getReader();
- IndexSearcher searcher = new IndexSearcher(reader);
+ IndexSearcher searcher = newSearcher(reader);
w.close();
QueryParser qp = new QueryParser(TEST_VERSION_CURRENT, "field", new MockAnalyzer());
Modified: lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery2.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery2.java (original)
+++ lucene/dev/branches/docvalues/lucene/src/test/org/apache/lucene/search/TestFuzzyQuery2.java Wed Feb 9 09:35:27 2011
@@ -79,7 +79,7 @@ public class TestFuzzyQuery2 extends Luc
int terms = (int) Math.pow(2, bits);
Directory dir = newDirectory();
- RandomIndexWriter writer = new RandomIndexWriter(random, dir, new MockAnalyzer(MockTokenizer.KEYWORD, false));
+ RandomIndexWriter writer = new RandomIndexWriter(random, dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.KEYWORD, false)).setMergePolicy(newInOrderLogMergePolicy()));
Document doc = new Document();
Field field = newField("field", "", Field.Store.NO, Field.Index.ANALYZED);
@@ -91,7 +91,7 @@ public class TestFuzzyQuery2 extends Luc
}
IndexReader r = writer.getReader();
- IndexSearcher searcher = new IndexSearcher(r);
+ IndexSearcher searcher = newSearcher(r);
writer.close();
String line;
while ((line = reader.readLine()) != null) {