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 2012/09/21 19:22:27 UTC
svn commit: r1388574 [22/45] - in /lucene/dev/branches/LUCENE-2878: ./
dev-tools/ dev-tools/eclipse/ dev-tools/eclipse/dot.settings/
dev-tools/idea/ dev-tools/idea/.idea/ dev-tools/idea/.idea/libraries/
dev-tools/idea/lucene/ dev-tools/idea/lucene/anal...
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsFormat.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsFormat.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsFormat.java Fri Sep 21 17:21:34 2012
@@ -38,6 +38,7 @@ import org.apache.lucene.codecs.TermStat
import org.apache.lucene.codecs.TermsConsumer;
import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FlushInfo;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
@@ -140,6 +141,9 @@ public class TestPostingsFormat extends
private static List<FieldAndTerm> allTerms;
+ private static long totalPostings;
+ private static long totalPayloadBytes;
+
@BeforeClass
public static void createPostings() throws IOException {
@@ -153,6 +157,8 @@ public class TestPostingsFormat extends
int numMediumTerms = 0;
int numBigTerms = 0;
int numManyPositions = 0;
+ totalPostings = 0;
+ totalPayloadBytes = 0;
while (fieldUpto < numFields) {
String field = _TestUtil.randomSimpleString(random());
if (fields.containsKey(field)) {
@@ -248,6 +254,7 @@ public class TestPostingsFormat extends
int pos = 0;
int offset = 0;
int posSpacing = _TestUtil.nextInt(random(), 1, 100);
+ totalPostings += freq;
for(int posUpto=0;posUpto<freq;posUpto++) {
if (posUpto == 0 && random().nextBoolean()) {
// Sometimes index pos = 0
@@ -273,6 +280,7 @@ public class TestPostingsFormat extends
if (position.payload != null) {
random().nextBytes(position.payload);
+ totalPayloadBytes += position.payload.length;
}
position.startOffset = offset + random().nextInt(5);
@@ -379,10 +387,13 @@ public class TestPostingsFormat extends
FieldInfos newFieldInfos = new FieldInfos(newFieldInfoArray);
+ // Estimate that flushed segment size will be 25% of
+ // what we use in RAM:
+ long bytes = totalPostings * 8 + totalPayloadBytes;
+
SegmentWriteState writeState = new SegmentWriteState(null, dir,
segmentInfo, newFieldInfos,
- 32, null, IOContext.DEFAULT);
-
+ 32, null, new IOContext(new FlushInfo(maxDocID, bytes)));
FieldsConsumer fieldsConsumer = Codec.getDefault().postingsFormat().fieldsConsumer(writeState);
for(Map.Entry<String,Map<BytesRef,List<Posting>>> fieldEnt : fields.entrySet()) {
@@ -933,6 +944,7 @@ public class TestPostingsFormat extends
// NOTE: you can also test "weaker" index options than
// you indexed with:
testTerms(fieldsProducer, EnumSet.allOf(Option.class), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
+ //testTerms(fieldsProducer, EnumSet.complementOf(EnumSet.of(Option.THREADS)), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
fieldsProducer.close();
dir.close();
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java Fri Sep 21 17:21:34 2012
@@ -240,7 +240,7 @@ public class TestPostingsOffsets extends
for(int docCount=0;docCount<numDocs;docCount++) {
Document doc = new Document();
- doc.add(new IntField("id", docCount, Field.Store.NO));
+ doc.add(new IntField("id", docCount, Field.Store.YES));
List<Token> tokens = new ArrayList<Token>();
final int numTokens = atLeast(100);
//final int numTokens = atLeast(20);
@@ -289,9 +289,9 @@ public class TestPostingsOffsets extends
w.close();
final String[] terms = new String[] {"a", "b", "c", "d"};
- for(IndexReader reader : r.getSequentialSubReaders()) {
+ for(AtomicReaderContext ctx : r.leaves()) {
// TODO: improve this
- AtomicReader sub = (AtomicReader) reader;
+ AtomicReader sub = ctx.reader();
//System.out.println("\nsub=" + sub);
final TermsEnum termsEnum = sub.fields().terms("content").iterator(null);
DocsEnum docs = null;
@@ -444,9 +444,9 @@ public class TestPostingsOffsets extends
makeToken("foo", 1, 0, 3),
makeToken("foo", 0, 0, 3),
makeToken("foo", 0, 0, 3)
- });
+ });
}
-
+
public void testLegalbutVeryLargeOffsets() throws Exception {
Directory dir = newDirectory();
IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, null));
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java Fri Sep 21 17:21:34 2012
@@ -25,7 +25,6 @@ import java.util.Set;
import java.util.TreeSet;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.MergedIterator;
import org.apache.lucene.util._TestUtil;
public class TestPrefixCodedTerms extends LuceneTestCase {
@@ -70,14 +69,10 @@ public class TestPrefixCodedTerms extend
@SuppressWarnings("unchecked")
public void testMergeEmpty() {
- List<Iterator<Term>> subs = Collections.emptyList();
- Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ Iterator<Term> merged = new MergedIterator<Term>();
assertFalse(merged.hasNext());
- subs = new ArrayList<Iterator<Term>>();
- subs.add(new PrefixCodedTerms.Builder().finish().iterator());
- subs.add(new PrefixCodedTerms.Builder().finish().iterator());
- merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ merged = new MergedIterator<Term>(new PrefixCodedTerms.Builder().finish().iterator(), new PrefixCodedTerms.Builder().finish().iterator());
assertFalse(merged.hasNext());
}
@@ -93,18 +88,14 @@ public class TestPrefixCodedTerms extend
b2.add(t2);
PrefixCodedTerms pb2 = b2.finish();
- List<Iterator<Term>> subs = new ArrayList<Iterator<Term>>();
- subs.add(pb1.iterator());
- subs.add(pb2.iterator());
-
- Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ Iterator<Term> merged = new MergedIterator<Term>(pb1.iterator(), pb2.iterator());
assertTrue(merged.hasNext());
assertEquals(t1, merged.next());
assertTrue(merged.hasNext());
assertEquals(t2, merged.next());
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked","rawtypes"})
public void testMergeRandom() {
PrefixCodedTerms pb[] = new PrefixCodedTerms[_TestUtil.nextInt(random(), 2, 10)];
Set<Term> superSet = new TreeSet<Term>();
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java Fri Sep 21 17:21:34 2012
@@ -121,7 +121,7 @@ public class TestRandomStoredFields exte
}
TopDocs hits = s.search(new TermQuery(new Term("id", testID)), 1);
assertEquals(1, hits.totalHits);
- Document doc = r.document(hits.scoreDocs[0].doc);
+ StoredDocument doc = r.document(hits.scoreDocs[0].doc);
Document docExp = docs.get(testID);
for(int i=0;i<fieldCount;i++) {
assertEquals("doc " + testID + ", field f" + fieldCount + " is wrong", docExp.get("f"+i), doc.get("f"+i));
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java Fri Sep 21 17:21:34 2012
@@ -69,7 +69,7 @@ public class TestRollingUpdates extends
if (VERBOSE) {
System.out.println(" docIter=" + docIter + " id=" + id);
}
- ((Field) doc.getField("docid")).setStringValue(myID);
+ doc.getField("docid").setStringValue(myID);
Term idTerm = new Term("docid", myID);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java Fri Sep 21 17:21:34 2012
@@ -78,7 +78,7 @@ final class BugReproTokenStream extends
offsetAtt.setOffset(starts[nextTokenIndex], ends[nextTokenIndex]);
posIncAtt.setPositionIncrement(incs[nextTokenIndex]);
nextTokenIndex++;
- return true;
+ return true;
} else {
return false;
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java Fri Sep 21 17:21:34 2012
@@ -82,7 +82,7 @@ public class TestSegmentMerger extends L
final SegmentInfo si = new SegmentInfo(mergedDir, Constants.LUCENE_MAIN_VERSION, mergedSegment, -1, false, codec, null, null);
SegmentMerger merger = new SegmentMerger(si, InfoStream.getDefault(), mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL,
- MergeState.CheckAbort.NONE, null, new FieldInfos.FieldNumbers(), newIOContext(random()));
+ MergeState.CheckAbort.NONE, new FieldInfos.FieldNumbers(), newIOContext(random()));
merger.add(reader1);
merger.add(reader2);
MergeState mergeState = merger.merge();
@@ -96,11 +96,11 @@ public class TestSegmentMerger extends L
DirectoryReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random()));
assertTrue(mergedReader != null);
assertTrue(mergedReader.numDocs() == 2);
- Document newDoc1 = mergedReader.document(0);
+ StoredDocument newDoc1 = mergedReader.document(0);
assertTrue(newDoc1 != null);
//There are 2 unstored fields on the document
assertTrue(DocHelper.numFields(newDoc1) == DocHelper.numFields(doc1) - DocHelper.unstored.size());
- Document newDoc2 = mergedReader.document(1);
+ StoredDocument newDoc2 = mergedReader.document(1);
assertTrue(newDoc2 != null);
assertTrue(DocHelper.numFields(newDoc2) == DocHelper.numFields(doc2) - DocHelper.unstored.size());
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java Fri Sep 21 17:21:34 2012
@@ -62,13 +62,13 @@ public class TestSegmentReader extends L
public void testDocument() throws IOException {
assertTrue(reader.numDocs() == 1);
assertTrue(reader.maxDoc() >= 1);
- Document result = reader.document(0);
+ StoredDocument result = reader.document(0);
assertTrue(result != null);
//There are 2 unstored fields on the document that are not preserved across writing
assertTrue(DocHelper.numFields(result) == DocHelper.numFields(testDoc) - DocHelper.unstored.size());
- List<IndexableField> fields = result.getFields();
- for (final IndexableField field : fields ) {
+ List<StorableField> fields = result.getFields();
+ for (final StorableField field : fields ) {
assertTrue(field != null);
assertTrue(DocHelper.nameValues.containsKey(field.name()));
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Fri Sep 21 17:21:34 2012
@@ -133,8 +133,8 @@ public class TestStressIndexing2 extends
static Term idTerm = new Term("id","");
IndexingThread[] threads;
- static Comparator<IndexableField> fieldNameComparator = new Comparator<IndexableField>() {
- public int compare(IndexableField o1, IndexableField o2) {
+ static Comparator<GeneralField> fieldNameComparator = new Comparator<GeneralField>() {
+ public int compare(GeneralField o1, GeneralField o2) {
return o1.name().compareTo(o2.name());
}
};
@@ -250,7 +250,7 @@ public class TestStressIndexing2 extends
Iterator<Document> iter = docs.values().iterator();
while (iter.hasNext()) {
Document d = iter.next();
- ArrayList<IndexableField> fields = new ArrayList<IndexableField>();
+ ArrayList<Field> fields = new ArrayList<Field>();
fields.addAll(d.getFields());
// put fields in same order each time
Collections.sort(fields, fieldNameComparator);
@@ -281,13 +281,13 @@ public class TestStressIndexing2 extends
}
private static void printDocs(DirectoryReader r) throws Throwable {
- List<? extends AtomicReader> subs = r.getSequentialSubReaders();
- for(IndexReader sub : subs) {
+ for(AtomicReaderContext ctx : r.leaves()) {
// TODO: improve this
- Bits liveDocs = ((AtomicReader)sub).getLiveDocs();
+ AtomicReader sub = ctx.reader();
+ Bits liveDocs = sub.getLiveDocs();
System.out.println(" " + ((SegmentReader) sub).getSegmentInfo());
for(int docID=0;docID<sub.maxDoc();docID++) {
- Document doc = sub.document(docID);
+ StoredDocument doc = sub.document(docID);
if (liveDocs == null || liveDocs.get(docID)) {
System.out.println(" docID=" + docID + " id:" + doc.get("id"));
} else {
@@ -573,9 +573,9 @@ public class TestStressIndexing2 extends
}
}
- public static void verifyEquals(Document d1, Document d2) {
- List<IndexableField> ff1 = d1.getFields();
- List<IndexableField> ff2 = d2.getFields();
+ public static void verifyEquals(StoredDocument d1, StoredDocument d2) {
+ List<StorableField> ff1 = d1.getFields();
+ List<StorableField> ff2 = d2.getFields();
Collections.sort(ff1, fieldNameComparator);
Collections.sort(ff2, fieldNameComparator);
@@ -583,8 +583,8 @@ public class TestStressIndexing2 extends
assertEquals(ff1 + " : " + ff2, ff1.size(), ff2.size());
for (int i=0; i<ff1.size(); i++) {
- IndexableField f1 = ff1.get(i);
- IndexableField f2 = ff2.get(i);
+ StorableField f1 = ff1.get(i);
+ StorableField f2 = ff2.get(i);
if (f1.binaryValue() != null) {
assert(f2.binaryValue() != null);
} else {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java Fri Sep 21 17:21:34 2012
@@ -343,12 +343,12 @@ public class TestStressNRT extends Lucen
if (results.totalHits != 1) {
System.out.println("FAIL: hits id:" + id + " val=" + val);
for(ScoreDoc sd : results.scoreDocs) {
- final Document doc = r.document(sd.doc);
+ final StoredDocument doc = r.document(sd.doc);
System.out.println(" docID=" + sd.doc + " id:" + doc.get("id") + " foundVal=" + doc.get(field));
}
fail("id=" + id + " reader=" + r + " totalHits=" + results.totalHits);
}
- Document doc = searcher.doc(results.scoreDocs[0].doc);
+ StoredDocument doc = searcher.doc(results.scoreDocs[0].doc);
long foundVal = Long.parseLong(doc.get(field));
if (foundVal < Math.abs(val)) {
fail("foundVal=" + foundVal + " val=" + val + " id=" + id + " reader=" + r);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java Fri Sep 21 17:21:34 2012
@@ -184,9 +184,9 @@ public class TestTermVectorsReader exten
public void test() throws IOException {
//Check to see the files were created properly in setup
DirectoryReader reader = DirectoryReader.open(dir);
- for (IndexReader r : reader.getSequentialSubReaders()) {
- SegmentInfoPerCommit s = ((SegmentReader) r).getSegmentInfo();
- assertTrue(((SegmentReader) r).getFieldInfos().hasVectors());
+ for (AtomicReaderContext ctx : reader.leaves()) {
+ SegmentReader sr = (SegmentReader) ctx.reader();
+ assertTrue(sr.getFieldInfos().hasVectors());
}
reader.close();
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java Fri Sep 21 17:21:34 2012
@@ -156,7 +156,7 @@ public class TestTermsEnum extends Lucen
private void addDoc(RandomIndexWriter w, Collection<String> terms, Map<BytesRef,Integer> termToID, int id) throws IOException {
Document doc = new Document();
- doc.add(new IntField("id", id, Field.Store.NO));
+ doc.add(new IntField("id", id, Field.Store.YES));
if (VERBOSE) {
System.out.println("TEST: addDoc id:" + id + " terms=" + terms);
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java Fri Sep 21 17:21:34 2012
@@ -130,7 +130,7 @@ public class TestThreadedForceMerge exte
OpenMode.APPEND).setMaxBufferedDocs(2));
DirectoryReader reader = DirectoryReader.open(directory);
- assertEquals("reader=" + reader, 1, reader.getSequentialSubReaders().size());
+ assertEquals("reader=" + reader, 1, reader.leaves().size());
assertEquals(expectedDocCount, reader.numDocs());
reader.close();
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java Fri Sep 21 17:21:34 2012
@@ -153,4 +153,60 @@ public class TestTieredMergePolicy exten
dir.close();
}
+
+ private static final double EPSILON = 1E-14;
+
+ public void testSetters() {
+ final TieredMergePolicy tmp = new TieredMergePolicy();
+
+ tmp.setMaxMergedSegmentMB(0.5);
+ assertEquals(0.5, tmp.getMaxMergedSegmentMB(), EPSILON);
+
+ tmp.setMaxMergedSegmentMB(Double.POSITIVE_INFINITY);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getMaxMergedSegmentMB(), EPSILON*Long.MAX_VALUE);
+
+ tmp.setMaxMergedSegmentMB(Long.MAX_VALUE/1024/1024.);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getMaxMergedSegmentMB(), EPSILON*Long.MAX_VALUE);
+
+ try {
+ tmp.setMaxMergedSegmentMB(-2.0);
+ fail("Didn't throw IllegalArgumentException");
+ } catch (IllegalArgumentException iae) {
+ // pass
+ }
+
+ tmp.setFloorSegmentMB(2.0);
+ assertEquals(2.0, tmp.getFloorSegmentMB(), EPSILON);
+
+ tmp.setFloorSegmentMB(Double.POSITIVE_INFINITY);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getFloorSegmentMB(), EPSILON*Long.MAX_VALUE);
+
+ tmp.setFloorSegmentMB(Long.MAX_VALUE/1024/1024.);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getFloorSegmentMB(), EPSILON*Long.MAX_VALUE);
+
+ try {
+ tmp.setFloorSegmentMB(-2.0);
+ fail("Didn't throw IllegalArgumentException");
+ } catch (IllegalArgumentException iae) {
+ // pass
+ }
+
+ tmp.setMaxCFSSegmentSizeMB(2.0);
+ assertEquals(2.0, tmp.getMaxCFSSegmentSizeMB(), EPSILON);
+
+ tmp.setMaxCFSSegmentSizeMB(Double.POSITIVE_INFINITY);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getMaxCFSSegmentSizeMB(), EPSILON*Long.MAX_VALUE);
+
+ tmp.setMaxCFSSegmentSizeMB(Long.MAX_VALUE/1024/1024.);
+ assertEquals(Long.MAX_VALUE/1024/1024., tmp.getMaxCFSSegmentSizeMB(), EPSILON*Long.MAX_VALUE);
+
+ try {
+ tmp.setMaxCFSSegmentSizeMB(-2.0);
+ fail("Didn't throw IllegalArgumentException");
+ } catch (IllegalArgumentException iae) {
+ // pass
+ }
+
+ // TODO: Add more checks for other non-double setters!
+ }
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java Fri Sep 21 17:21:34 2012
@@ -41,13 +41,13 @@ import org.apache.lucene.util.Bits;
*/
public class TestTransactionRollback extends LuceneTestCase {
-
+
private static final String FIELD_RECORD_ID = "record_id";
private Directory dir;
-
+
//Rolls back index to a chosen ID
private void rollBackLast(int id) throws Exception {
-
+
// System.out.println("Attempting to rollback to "+id);
String ids="-"+id;
IndexCommit last=null;
@@ -62,7 +62,7 @@ public class TestTransactionRollback ext
if (last==null)
throw new RuntimeException("Couldn't find commit point "+id);
-
+
IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
TEST_VERSION_CURRENT, new MockAnalyzer(random())).setIndexDeletionPolicy(
new RollbackDeletionPolicy(id)).setIndexCommit(last));
@@ -72,22 +72,22 @@ public class TestTransactionRollback ext
w.close();
}
- public void testRepeatedRollBacks() throws Exception {
+ public void testRepeatedRollBacks() throws Exception {
int expectedLastRecordId=100;
while (expectedLastRecordId>10) {
- expectedLastRecordId -=10;
+ expectedLastRecordId -=10;
rollBackLast(expectedLastRecordId);
BitSet expecteds = new BitSet(100);
expecteds.set(1,(expectedLastRecordId+1),true);
- checkExpecteds(expecteds);
+ checkExpecteds(expecteds);
}
}
-
+
private void checkExpecteds(BitSet expecteds) throws Exception {
IndexReader r = DirectoryReader.open(dir);
-
+
//Perhaps not the most efficient approach but meets our
//needs here.
final Bits liveDocs = MultiFields.getLiveDocs(r);
@@ -114,7 +114,7 @@ public class TestTransactionRollback ext
Collection files = comm.getFileNames();
for (Iterator iterator2 = files.iterator(); iterator2.hasNext();) {
String filename = (String) iterator2.next();
- System.out.print(filename+", ");
+ System.out.print(filename+", ");
}
System.out.println();
}
@@ -133,7 +133,7 @@ public class TestTransactionRollback ext
Document doc=new Document();
doc.add(newTextField(FIELD_RECORD_ID, ""+currentRecordId, Field.Store.YES));
w.addDocument(doc);
-
+
if (currentRecordId%10 == 0) {
Map<String,String> data = new HashMap<String,String>();
data.put("index", "records 1-"+currentRecordId);
@@ -177,16 +177,16 @@ public class TestTransactionRollback ext
" UserData="+commit.getUserData() +") ("+(commits.size()-1)+" commit points left) files=");
Collection files = commit.getFileNames();
for (Iterator iterator2 = files.iterator(); iterator2.hasNext();) {
- System.out.print(" "+iterator2.next());
+ System.out.print(" "+iterator2.next());
}
System.out.println();
*/
-
- commit.delete();
+
+ commit.delete();
}
}
}
- }
+ }
}
class DeleteLastCommitPolicy implements IndexDeletionPolicy {
@@ -198,7 +198,7 @@ public class TestTransactionRollback ext
}
}
- public void testRollbackDeletionPolicy() throws Exception {
+ public void testRollbackDeletionPolicy() throws Exception {
for(int i=0;i<2;i++) {
// Unless you specify a prior commit point, rollback
// should not work:
@@ -209,7 +209,7 @@ public class TestTransactionRollback ext
r.close();
}
}
-
+
// Keeps all commit points (used to build index)
class KeepAllDeletionPolicy implements IndexDeletionPolicy {
public void onCommit(List<? extends IndexCommit> commits) throws IOException {}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactions.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactions.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTransactions.java Fri Sep 21 17:21:34 2012
@@ -129,7 +129,7 @@ public class TestTransactions extends Lu
}
try {
writer2.prepareCommit();
- } catch (Throwable t) {
+ } catch (Throwable t) {
writer1.rollback();
writer2.rollback();
return;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java Fri Sep 21 17:21:34 2012
@@ -120,8 +120,8 @@ public class TestTypePromotion extends L
private void assertValues(TestType type, Directory dir, long[] values, Type[] sourceType)
throws IOException {
DirectoryReader reader = DirectoryReader.open(dir);
- assertEquals(1, reader.getSequentialSubReaders().size());
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ assertEquals(1, reader.leaves().size());
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
assertEquals(1, leaves.size());
DocValues docValues = leaves.get(0).reader().docValues("promote");
@@ -371,8 +371,8 @@ public class TestTypePromotion extends L
writer.forceMerge(1);
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- assertEquals(1, reader.getSequentialSubReaders().size());
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ assertEquals(1, reader.leaves().size());
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
DocValues docValues = leaves.get(0).reader().docValues("promote");
assertNotNull(docValues);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java Fri Sep 21 17:21:34 2012
@@ -22,6 +22,7 @@ import org.apache.lucene.util.LuceneTest
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
@@ -435,7 +436,7 @@ public class TestBooleanMinShouldMatch e
DecimalFormat f = new DecimalFormat("0.000000", DecimalFormatSymbols.getInstance(Locale.ROOT));
for (int i = 0; i < h.length; i++) {
- Document d = searcher.doc(h[i].doc);
+ StoredDocument d = searcher.doc(h[i].doc);
float score = h[i].score;
System.err.println("#" + i + ": " + f.format(score) + " - " +
d.get("id") + " - " + d.get("data"));
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java Fri Sep 21 17:21:34 2012
@@ -16,15 +16,19 @@ package org.apache.lucene.search;
* limitations under the License.
*/
import java.io.IOException;
-
-import org.apache.lucene.util.LuceneTestCase;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
+import org.apache.lucene.search.Weight.PostingFeatures;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestBooleanOr extends LuceneTestCase {
@@ -162,4 +166,64 @@ public class TestBooleanOr extends Lucen
dir.close();
super.tearDown();
}
+
+ public void testBooleanScorerMax() throws IOException {
+ Directory dir = newDirectory();
+ RandomIndexWriter riw = new RandomIndexWriter(random(), dir);
+
+ int docCount = atLeast(10000);
+
+ for(int i=0;i<docCount;i++) {
+ Document doc = new Document();
+ doc.add(newField("field", "a", TextField.TYPE_NOT_STORED));
+ riw.addDocument(doc);
+ }
+
+ riw.forceMerge(1);
+ IndexReader r = riw.getReader();
+ riw.close();
+
+ IndexSearcher s = newSearcher(r);
+ BooleanQuery bq = new BooleanQuery();
+ bq.add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD);
+ bq.add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD);
+
+ Weight w = s.createNormalizedWeight(bq);
+
+ assertEquals(1, s.getIndexReader().leaves().size());
+ Scorer scorer = w.scorer(s.getIndexReader().getContext().leaves().get(0), false, true, PostingFeatures.DOCS_AND_FREQS, null);
+
+ final FixedBitSet hits = new FixedBitSet(docCount);
+ final AtomicInteger end = new AtomicInteger();
+ Collector c = new Collector() {
+ @Override
+ public void setNextReader(AtomicReaderContext sub) {
+ }
+
+ @Override
+ public void collect(int doc) {
+ assertTrue("collected doc=" + doc + " beyond max=" + end, doc < end.intValue());
+ hits.set(doc);
+ }
+
+ @Override
+ public void setScorer(Scorer scorer) {
+ }
+
+ @Override
+ public boolean acceptsDocsOutOfOrder() {
+ return true;
+ }
+ };
+
+ while (end.intValue() < docCount) {
+ final int inc = _TestUtil.nextInt(random(), 1, 1000);
+ end.getAndAdd(inc);
+ scorer.score(c, end.intValue(), -1);
+ }
+
+ assertEquals(docCount, hits.cardinality());
+ r.close();
+ dir.close();
+ }
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingCollector.java Fri Sep 21 17:21:34 2012
@@ -151,7 +151,7 @@ public class TestCachingCollector extend
try {
cc.replay(new NoOpCollector(false)); // this call should fail
fail("should have failed if an in-order Collector was given to replay(), " +
- "while CachingCollector was initialized with out-of-order collection");
+ "while CachingCollector was initialized with out-of-order collection");
} catch (IllegalArgumentException e) {
// ok
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Fri Sep 21 17:21:34 2012
@@ -43,7 +43,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
MockFilter filter = new MockFilter();
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
@@ -69,7 +69,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final Filter filter = new Filter() {
@Override
@@ -92,7 +92,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final Filter filter = new Filter() {
@Override
@@ -115,8 +115,8 @@ public class TestCachingWrapperFilter ex
}
private static void assertDocIdSetCacheable(IndexReader reader, Filter filter, boolean shouldCacheable) throws IOException {
- assertTrue(reader.getTopReaderContext() instanceof AtomicReaderContext);
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ assertTrue(reader.getContext() instanceof AtomicReaderContext);
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
final DocIdSet originalSet = filter.getDocIdSet(context, context.reader().getLiveDocs());
final DocIdSet cachedSet = cacher.getDocIdSet(context, context.reader().getLiveDocs());
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java Fri Sep 21 17:21:34 2012
@@ -194,13 +194,6 @@ public class TestCustomSearcherSort exte
this.switcher = switcher;
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.apache.lucene.search.Searchable#search(org.apache.lucene.search.Query
- * , org.apache.lucene.search.Filter, int, org.apache.lucene.search.Sort)
- */
@Override
public TopFieldDocs search(Query query, Filter filter, int nDocs, Sort sort)
throws IOException {
@@ -211,13 +204,6 @@ public class TestCustomSearcherSort exte
return super.search(bq, filter, nDocs, sort);
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.apache.lucene.search.Searchable#search(org.apache.lucene.search.Query
- * , org.apache.lucene.search.Filter, int)
- */
@Override
public TopDocs search(Query query, Filter filter, int nDocs)
throws IOException {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDateSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDateSort.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDateSort.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDateSort.java Fri Sep 21 17:21:34 2012
@@ -27,6 +27,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.store.Directory;
/**
@@ -82,7 +83,7 @@ public class TestDateSort extends Lucene
String[] actualOrder = new String[5];
ScoreDoc[] hits = searcher.search(query, null, 1000, sort).scoreDocs;
for (int i = 0; i < hits.length; i++) {
- Document document = searcher.doc(hits[i].doc);
+ StoredDocument document = searcher.doc(hits[i].doc);
String text = document.get(TEXT_FIELD);
actualOrder[i] = text;
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Fri Sep 21 17:21:34 2012
@@ -29,6 +29,7 @@ import org.apache.lucene.index.Norm;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Weight.PostingFeatures;
import org.apache.lucene.search.similarities.DefaultSimilarity;
@@ -491,7 +492,7 @@ public class TestDisjunctionMaxQuery ext
DecimalFormat f = new DecimalFormat("0.000000000", DecimalFormatSymbols.getInstance(Locale.ROOT));
for (int i = 0; i < h.length; i++) {
- Document d = searcher.doc(h[i].doc);
+ StoredDocument d = searcher.doc(h[i].doc);
float score = h[i].score;
System.err
.println("#" + i + ": " + f.format(score) + " - " + d.get("id"));
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java Fri Sep 21 17:21:34 2012
@@ -62,15 +62,15 @@ public class TestDocIdSet extends Lucene
};
}
};
-
-
+
+
DocIdSet filteredSet = new FilteredDocIdSet(innerSet){
@Override
protected boolean match(int docid) {
return docid%2 == 0; //validate only even docids
- }
+ }
};
-
+
DocIdSetIterator iter = filteredSet.iterator();
ArrayList<Integer> list = new ArrayList<Integer>();
int doc = iter.advance(3);
@@ -80,7 +80,7 @@ public class TestDocIdSet extends Lucene
list.add(Integer.valueOf(doc));
}
}
-
+
int[] docs = new int[list.size()];
int c=0;
Iterator<Integer> intIter = list.iterator();
@@ -151,7 +151,7 @@ public class TestDocIdSet extends Lucene
@Override
protected boolean match(int docid) {
return true;
- }
+ }
};
}
};
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java Fri Sep 21 17:21:34 2012
@@ -17,12 +17,16 @@ package org.apache.lucene.search;
* limitations under the License.
*/
+import java.io.IOException;
import java.util.BitSet;
+import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
@@ -30,7 +34,9 @@ import org.apache.lucene.search.BooleanC
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.DocIdBitSet;
+import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
/**
* FilteredQuery JUnit tests.
@@ -117,7 +123,7 @@ public class TestFilteredQuery extends L
}
private void tFilteredQuery(final boolean useRandomAccess) throws Exception {
- Query filteredquery = new FilteredQueryRA(query, filter, useRandomAccess);
+ Query filteredquery = new FilteredQuery(query, filter, randomFilterStrategy(random(), useRandomAccess));
ScoreDoc[] hits = searcher.search (filteredquery, null, 1000).scoreDocs;
assertEquals (1, hits.length);
assertEquals (1, hits[0].doc);
@@ -127,23 +133,23 @@ public class TestFilteredQuery extends L
assertEquals (1, hits.length);
assertEquals (1, hits[0].doc);
- filteredquery = new FilteredQueryRA(new TermQuery (new Term ("field", "one")), filter, useRandomAccess);
+ filteredquery = new FilteredQuery(new TermQuery (new Term ("field", "one")), filter, randomFilterStrategy(random(), useRandomAccess));
hits = searcher.search (filteredquery, null, 1000).scoreDocs;
assertEquals (2, hits.length);
QueryUtils.check(random(), filteredquery,searcher);
- filteredquery = new FilteredQueryRA(new MatchAllDocsQuery(), filter, useRandomAccess);
+ filteredquery = new FilteredQuery(new MatchAllDocsQuery(), filter, randomFilterStrategy(random(), useRandomAccess));
hits = searcher.search (filteredquery, null, 1000).scoreDocs;
assertEquals (2, hits.length);
QueryUtils.check(random(), filteredquery,searcher);
- filteredquery = new FilteredQueryRA(new TermQuery (new Term ("field", "x")), filter, useRandomAccess);
+ filteredquery = new FilteredQuery(new TermQuery (new Term ("field", "x")), filter, randomFilterStrategy(random(), useRandomAccess));
hits = searcher.search (filteredquery, null, 1000).scoreDocs;
assertEquals (1, hits.length);
assertEquals (3, hits[0].doc);
QueryUtils.check(random(), filteredquery,searcher);
- filteredquery = new FilteredQueryRA(new TermQuery (new Term ("field", "y")), filter, useRandomAccess);
+ filteredquery = new FilteredQuery(new TermQuery (new Term ("field", "y")), filter, randomFilterStrategy(random(), useRandomAccess));
hits = searcher.search (filteredquery, null, 1000).scoreDocs;
assertEquals (0, hits.length);
QueryUtils.check(random(), filteredquery,searcher);
@@ -160,7 +166,7 @@ public class TestFilteredQuery extends L
BooleanQuery bq2 = new BooleanQuery();
tq = new TermQuery (new Term ("field", "one"));
- filteredquery = new FilteredQueryRA(tq, f, useRandomAccess);
+ filteredquery = new FilteredQuery(tq, f, randomFilterStrategy(random(), useRandomAccess));
filteredquery.setBoost(boost);
bq2.add(filteredquery, Occur.MUST);
bq2.add(new TermQuery (new Term ("field", "five")), Occur.MUST);
@@ -210,7 +216,7 @@ public class TestFilteredQuery extends L
TermRangeQuery rq = TermRangeQuery.newStringRange(
"sorter", "b", "d", true, true);
- Query filteredquery = new FilteredQueryRA(rq, filter, useRandomAccess);
+ Query filteredquery = new FilteredQuery(rq, filter, randomFilterStrategy(random(), useRandomAccess));
ScoreDoc[] hits = searcher.search(filteredquery, null, 1000).scoreDocs;
assertEquals(2, hits.length);
QueryUtils.check(random(), filteredquery,searcher);
@@ -225,9 +231,9 @@ public class TestFilteredQuery extends L
private void tBooleanMUST(final boolean useRandomAccess) throws Exception {
BooleanQuery bq = new BooleanQuery();
- Query query = new FilteredQueryRA(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(0), useRandomAccess);
+ Query query = new FilteredQuery(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(0), randomFilterStrategy(random(), useRandomAccess));
bq.add(query, BooleanClause.Occur.MUST);
- query = new FilteredQueryRA(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(1), useRandomAccess);
+ query = new FilteredQuery(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(1), randomFilterStrategy(random(), useRandomAccess));
bq.add(query, BooleanClause.Occur.MUST);
ScoreDoc[] hits = searcher.search(bq, null, 1000).scoreDocs;
assertEquals(0, hits.length);
@@ -243,9 +249,9 @@ public class TestFilteredQuery extends L
private void tBooleanSHOULD(final boolean useRandomAccess) throws Exception {
BooleanQuery bq = new BooleanQuery();
- Query query = new FilteredQueryRA(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(0), useRandomAccess);
+ Query query = new FilteredQuery(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(0), randomFilterStrategy(random(), useRandomAccess));
bq.add(query, BooleanClause.Occur.SHOULD);
- query = new FilteredQueryRA(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(1), useRandomAccess);
+ query = new FilteredQuery(new TermQuery(new Term("field", "one")), new SingleDocTestFilter(1), randomFilterStrategy(random(), useRandomAccess));
bq.add(query, BooleanClause.Occur.SHOULD);
ScoreDoc[] hits = searcher.search(bq, null, 1000).scoreDocs;
assertEquals(2, hits.length);
@@ -263,7 +269,7 @@ public class TestFilteredQuery extends L
private void tBoolean2(final boolean useRandomAccess) throws Exception {
BooleanQuery bq = new BooleanQuery();
- Query query = new FilteredQueryRA(bq, new SingleDocTestFilter(0), useRandomAccess);
+ Query query = new FilteredQuery(bq, new SingleDocTestFilter(0), randomFilterStrategy(random(), useRandomAccess));
bq.add(new TermQuery(new Term("field", "one")), BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term("field", "two")), BooleanClause.Occur.SHOULD);
ScoreDoc[] hits = searcher.search(query, 1000).scoreDocs;
@@ -279,16 +285,16 @@ public class TestFilteredQuery extends L
}
private void tChainedFilters(final boolean useRandomAccess) throws Exception {
- Query query = new TestFilteredQuery.FilteredQueryRA(new TestFilteredQuery.FilteredQueryRA(
- new MatchAllDocsQuery(), new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "three")))), useRandomAccess),
- new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "four")))), useRandomAccess);
+ Query query = new FilteredQuery(new FilteredQuery(
+ new MatchAllDocsQuery(), new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "three")))), randomFilterStrategy(random(), useRandomAccess)),
+ new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "four")))), randomFilterStrategy(random(), useRandomAccess));
ScoreDoc[] hits = searcher.search(query, 10).scoreDocs;
assertEquals(2, hits.length);
QueryUtils.check(random(), query, searcher);
// one more:
- query = new TestFilteredQuery.FilteredQueryRA(query,
- new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "five")))), useRandomAccess);
+ query = new FilteredQuery(query,
+ new CachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("field", "five")))), randomFilterStrategy(random(), useRandomAccess));
hits = searcher.search(query, 10).scoreDocs;
assertEquals(1, hits.length);
QueryUtils.check(random(), query, searcher);
@@ -363,19 +369,172 @@ public class TestFilteredQuery extends L
assertRewrite(new FilteredQuery(new TermQuery(new Term("field", "one")), new PrefixFilter(new Term("field", "o"))), FilteredQuery.class);
assertRewrite(new FilteredQuery(new MatchAllDocsQuery(), new PrefixFilter(new Term("field", "o"))), ConstantScoreQuery.class);
}
-
- public static final class FilteredQueryRA extends FilteredQuery {
- private final boolean useRandomAccess;
- public FilteredQueryRA(Query q, Filter f, boolean useRandomAccess) {
- super(q,f);
- this.useRandomAccess = useRandomAccess;
+ private static FilteredQuery.FilterStrategy randomFilterStrategy(Random random, final boolean useRandomAccess) {
+ if (useRandomAccess) {
+ return new FilteredQuery.RandomAccessFilterStrategy() {
+ @Override
+ protected boolean useRandomAccess(Bits bits, int firstFilterDoc) {
+ return useRandomAccess;
+ }
+ };
+ }
+ return _TestUtil.randomFilterStrategy(random);
+ }
+
+ /*
+ * Test if the QueryFirst strategy calls the bits only if the document has
+ * been matched by the query and not otherwise
+ */
+ public void testQueryFirstFilterStrategy() throws IOException {
+ Directory directory = newDirectory();
+ RandomIndexWriter writer = new RandomIndexWriter(random(), directory,
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
+ int numDocs = atLeast(50);
+ int totalDocsWithZero = 0;
+ for (int i = 0; i < numDocs; i++) {
+ Document doc = new Document();
+ int num = random().nextInt(5);
+ if (num == 0) {
+ totalDocsWithZero++;
+ }
+ doc.add(newTextField("field", "" + num, Field.Store.YES));
+ writer.addDocument(doc);
}
+ IndexReader reader = writer.getReader();
+ writer.close();
+
+ IndexSearcher searcher = newSearcher(reader);
+ Query query = new FilteredQuery(new TermQuery(new Term("field", "0")),
+ new Filter() {
+ @Override
+ public DocIdSet getDocIdSet(AtomicReaderContext context,
+ Bits acceptDocs) throws IOException {
+ final boolean nullBitset = random().nextInt(10) == 5;
+ final AtomicReader reader = context.reader();
+ DocsEnum termDocsEnum = reader.termDocsEnum(new Term("field", "0"));
+ if (termDocsEnum == null) {
+ return null; // no docs -- return null
+ }
+ final BitSet bitSet = new BitSet(reader.maxDoc());
+ int d;
+ while ((d = termDocsEnum.nextDoc()) != DocsEnum.NO_MORE_DOCS) {
+ bitSet.set(d, true);
+ }
+ return new DocIdSet() {
+
+ @Override
+ public Bits bits() throws IOException {
+ if (nullBitset) {
+ return null;
+ }
+ return new Bits() {
+
+ @Override
+ public boolean get(int index) {
+ assertTrue("filter was called for a non-matching doc",
+ bitSet.get(index));
+ return bitSet.get(index);
+ }
+
+ @Override
+ public int length() {
+ return bitSet.length();
+ }
+
+ };
+ }
+
+ @Override
+ public DocIdSetIterator iterator() throws IOException {
+ assertTrue(
+ "iterator should not be called if bitset is present",
+ nullBitset);
+ return reader.termDocsEnum(new Term("field", "0"));
+ }
+
+ };
+ }
+ }, FilteredQuery.QUERY_FIRST_FILTER_STRATEGY);
+
+ TopDocs search = searcher.search(query, 10);
+ assertEquals(totalDocsWithZero, search.totalHits);
+ IOUtils.close(reader, writer, directory);
- @Override
- protected boolean useRandomAccess(Bits bits, int firstFilterDoc) {
- return useRandomAccess;
+ }
+
+ /*
+ * Test if the leapfrog strategy works correctly in terms
+ * of advancing / next the right thing first
+ */
+ public void testLeapFrogStrategy() throws IOException {
+ Directory directory = newDirectory();
+ RandomIndexWriter writer = new RandomIndexWriter (random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
+ int numDocs = atLeast(50);
+ int totalDocsWithZero = 0;
+ for (int i = 0; i < numDocs; i++) {
+ Document doc = new Document();
+ int num = random().nextInt(10);
+ if (num == 0) {
+ totalDocsWithZero++;
+ }
+ doc.add (newTextField("field", ""+num, Field.Store.YES));
+ writer.addDocument (doc);
}
+ IndexReader reader = writer.getReader();
+ writer.close ();
+ final boolean queryFirst = random().nextBoolean();
+ IndexSearcher searcher = newSearcher(reader);
+ Query query = new FilteredQuery(new TermQuery(new Term("field", "0")), new Filter() {
+ @Override
+ public DocIdSet getDocIdSet(final AtomicReaderContext context, Bits acceptDocs)
+ throws IOException {
+ return new DocIdSet() {
+
+ @Override
+ public Bits bits() throws IOException {
+ return null;
+ }
+ @Override
+ public DocIdSetIterator iterator() throws IOException {
+ final DocsEnum termDocsEnum = context.reader().termDocsEnum(new Term("field", "0"));
+ if (termDocsEnum == null) {
+ return null;
+ }
+ return new DocIdSetIterator() {
+ boolean nextCalled;
+ boolean advanceCalled;
+ @Override
+ public int nextDoc() throws IOException {
+ assertTrue("queryFirst: "+ queryFirst + " advanced: " + advanceCalled + " next: "+ nextCalled, nextCalled || advanceCalled ^ !queryFirst);
+ nextCalled = true;
+ return termDocsEnum.nextDoc();
+ }
+
+ @Override
+ public int docID() {
+ return termDocsEnum.docID();
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ assertTrue("queryFirst: "+ queryFirst + " advanced: " + advanceCalled + " next: "+ nextCalled, advanceCalled || nextCalled ^ queryFirst);
+ advanceCalled = true;
+ return termDocsEnum.advance(target);
+ }
+ };
+ }
+
+ };
+ }
+ }, queryFirst ? FilteredQuery.LEAP_FROG_QUERY_FIRST_STRATEGY : random()
+ .nextBoolean() ? FilteredQuery.RANDOM_ACCESS_FILTER_STRATEGY
+ : FilteredQuery.LEAP_FROG_FILTER_FIRST_STRATEGY); // if filterFirst, we can use random here since bits are null
+
+ TopDocs search = searcher.search(query, 10);
+ assertEquals(totalDocsWithZero, search.totalHits);
+ IOUtils.close(reader, writer, directory);
+
}
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java Fri Sep 21 17:21:34 2012
@@ -101,7 +101,7 @@ public class TestFuzzyQuery extends Luce
}
// not similar enough:
- query = new FuzzyQuery(new Term("field", "xxxxx"), FuzzyQuery.defaultMaxEdits, 0);
+ query = new FuzzyQuery(new Term("field", "xxxxx"), FuzzyQuery.defaultMaxEdits, 0);
hits = searcher.search(query, null, 1000).scoreDocs;
assertEquals(0, hits.length);
query = new FuzzyQuery(new Term("field", "aaccc"), FuzzyQuery.defaultMaxEdits, 0); // edit distance to "aaaaa" = 3
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java Fri Sep 21 17:21:34 2012
@@ -28,6 +28,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexDocument;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
@@ -75,7 +76,7 @@ public class TestNRTManager extends Thre
}
@Override
- protected void updateDocuments(Term id, List<? extends Iterable<? extends IndexableField>> docs) throws Exception {
+ protected void updateDocuments(Term id, List<? extends IndexDocument> docs) throws Exception {
final long gen = genWriter.updateDocuments(id, docs);
// Randomly verify the update "took":
@@ -99,7 +100,7 @@ public class TestNRTManager extends Thre
}
@Override
- protected void addDocuments(Term id, List<? extends Iterable<? extends IndexableField>> docs) throws Exception {
+ protected void addDocuments(Term id, List<? extends IndexDocument> docs) throws Exception {
final long gen = genWriter.addDocuments(docs);
// Randomly verify the add "took":
if (random().nextInt(20) == 2) {
@@ -121,7 +122,7 @@ public class TestNRTManager extends Thre
}
@Override
- protected void addDocument(Term id, Iterable<? extends IndexableField> doc) throws Exception {
+ protected void addDocument(Term id, IndexDocument doc) throws Exception {
final long gen = genWriter.addDocument(doc);
// Randomly verify the add "took":
@@ -144,7 +145,7 @@ public class TestNRTManager extends Thre
}
@Override
- protected void updateDocument(Term id, Iterable<? extends IndexableField> doc) throws Exception {
+ protected void updateDocument(Term id, IndexDocument doc) throws Exception {
final long gen = genWriter.updateDocument(id, doc);
// Randomly verify the udpate "took":
if (random().nextInt(20) == 2) {
@@ -373,7 +374,7 @@ public class TestNRTManager extends Thre
}
public void updateDocument(Term term,
- Iterable<? extends IndexableField> doc, Analyzer analyzer)
+ IndexDocument doc, Analyzer analyzer)
throws IOException {
super.updateDocument(term, doc, analyzer);
try {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java Fri Sep 21 17:21:34 2012
@@ -29,6 +29,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.store.Directory;
@@ -173,7 +174,7 @@ public class TestNumericRangeQuery32 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count"+type, count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc"+type, 2*distance+startOffset, doc.getField(field).numericValue().intValue());
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc"+type, (1+count)*distance+startOffset, doc.getField(field).numericValue().intValue());
@@ -197,7 +198,7 @@ public class TestNumericRangeQuery32 ext
@Test
public void testInverseRange() throws Exception {
- AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(reader).getTopReaderContext();
+ AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(reader).getContext();
NumericRangeFilter<Integer> f = NumericRangeFilter.newIntRange("field8", 8, 1000, -1000, true, true);
assertSame("A inverse range should return the EMPTY_DOCIDSET instance", DocIdSet.EMPTY_DOCIDSET, f.getDocIdSet(context, context.reader().getLiveDocs()));
f = NumericRangeFilter.newIntRange("field8", 8, Integer.MAX_VALUE, null, false, false);
@@ -226,7 +227,7 @@ public class TestNumericRangeQuery32 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count", count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc", startOffset, doc.getField(field).numericValue().intValue());
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc", (count-1)*distance+startOffset, doc.getField(field).numericValue().intValue());
@@ -266,7 +267,7 @@ public class TestNumericRangeQuery32 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count", noDocs-count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc", count*distance+startOffset, doc.getField(field).numericValue().intValue());
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc", (noDocs-1)*distance+startOffset, doc.getField(field).numericValue().intValue());
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java Fri Sep 21 17:21:34 2012
@@ -29,6 +29,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.store.Directory;
@@ -182,7 +183,7 @@ public class TestNumericRangeQuery64 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count"+type, count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc"+type, 2*distance+startOffset, doc.getField(field).numericValue().longValue() );
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc"+type, (1+count)*distance+startOffset, doc.getField(field).numericValue().longValue() );
@@ -211,7 +212,7 @@ public class TestNumericRangeQuery64 ext
@Test
public void testInverseRange() throws Exception {
- AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(searcher.getIndexReader()).getTopReaderContext();
+ AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(searcher.getIndexReader()).getContext();
NumericRangeFilter<Long> f = NumericRangeFilter.newLongRange("field8", 8, 1000L, -1000L, true, true);
assertSame("A inverse range should return the EMPTY_DOCIDSET instance", DocIdSet.EMPTY_DOCIDSET,
f.getDocIdSet(context, context.reader().getLiveDocs()));
@@ -241,7 +242,7 @@ public class TestNumericRangeQuery64 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count", count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc", startOffset, doc.getField(field).numericValue().longValue() );
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc", (count-1)*distance+startOffset, doc.getField(field).numericValue().longValue() );
@@ -286,7 +287,7 @@ public class TestNumericRangeQuery64 ext
ScoreDoc[] sd = topDocs.scoreDocs;
assertNotNull(sd);
assertEquals("Score doc count", noDocs-count, sd.length );
- Document doc=searcher.doc(sd[0].doc);
+ StoredDocument doc=searcher.doc(sd[0].doc);
assertEquals("First doc", count*distance+startOffset, doc.getField(field).numericValue().longValue() );
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc", (noDocs-1)*distance+startOffset, doc.getField(field).numericValue().longValue() );
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java Fri Sep 21 17:21:34 2012
@@ -74,7 +74,7 @@ public class TestPhraseQuery extends Luc
Document doc = new Document();
doc.add(newTextField("field", "one two three four five", Field.Store.YES));
doc.add(newTextField("repeated", "this is a repeated field - first part", Field.Store.YES));
- IndexableField repeatedField = newTextField("repeated", "second part of a repeated field", Field.Store.YES);
+ Field repeatedField = newTextField("repeated", "second part of a repeated field", Field.Store.YES);
doc.add(repeatedField);
doc.add(newTextField("palindrome", "one two three two one", Field.Store.YES));
writer.addDocument(doc);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java Fri Sep 21 17:21:34 2012
@@ -212,9 +212,7 @@ public class TestPositionIncrement exten
final IndexReader readerFromWriter = writer.getReader();
AtomicReader r = SlowCompositeReaderWrapper.wrap(readerFromWriter);
- DocsAndPositionsEnum tp = r.termPositionsEnum(r.getLiveDocs(),
- "content",
- new BytesRef("a"));
+ DocsAndPositionsEnum tp = r.termPositionsEnum(new Term("content", "a"));
int count = 0;
assertTrue(tp.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java Fri Sep 21 17:21:34 2012
@@ -22,8 +22,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.Term;
@@ -310,13 +310,11 @@ public class TestShardSearching extends
final int numNodes = shardSearcher.nodeVersions.length;
int[] base = new int[numNodes];
- final List<? extends IndexReader> subs = ((CompositeReader) mockSearcher.getIndexReader()).getSequentialSubReaders();
+ final List<IndexReaderContext> subs = mockSearcher.getTopReaderContext().children();
assertEquals(numNodes, subs.size());
- int docCount = 0;
for(int nodeID=0;nodeID<numNodes;nodeID++) {
- base[nodeID] = docCount;
- docCount += subs.get(nodeID).maxDoc();
+ base[nodeID] = subs.get(nodeID).docBaseInParent;
}
if (VERBOSE) {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java Fri Sep 21 17:21:34 2012
@@ -20,12 +20,13 @@ package org.apache.lucene.search;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.index.AtomicReader;
+import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.MultiDocValues;
import org.apache.lucene.index.Norm;
import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper;
import org.apache.lucene.search.similarities.Similarity;
@@ -36,7 +37,7 @@ import org.apache.lucene.util.LuceneTest
public class TestSimilarityProvider extends LuceneTestCase {
private Directory directory;
- private IndexReader reader;
+ private DirectoryReader reader;
private IndexSearcher searcher;
@Override
@@ -75,8 +76,9 @@ public class TestSimilarityProvider exte
public void testBasics() throws Exception {
// sanity check of norms writer
// TODO: generalize
- byte fooNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "foo").getSource().getArray();
- byte barNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "bar").getSource().getArray();
+ AtomicReader slow = new SlowCompositeReaderWrapper(reader);
+ byte fooNorms[] = (byte[]) slow.normValues("foo").getSource().getArray();
+ byte barNorms[] = (byte[]) slow.normValues("bar").getSource().getArray();
for (int i = 0; i < fooNorms.length; i++) {
assertFalse(fooNorms[i] == barNorms[i]);
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSort.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSort.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestSort.java Fri Sep 21 17:21:34 2012
@@ -50,6 +50,8 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.StorableField;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.FieldValueHitQueue.Entry;
@@ -523,9 +525,9 @@ public class TestSort extends LuceneTest
boolean fail = false;
final String fieldSuffix = sort.getSort()[0].getField().endsWith("_fixed") ? "_fixed" : "";
for (int x = 0; x < n; ++x) {
- Document doc2 = searcher.doc(result[x].doc);
- IndexableField[] v = doc2.getFields("tracer" + fieldSuffix);
- IndexableField[] v2 = doc2.getFields("tracer2" + fieldSuffix);
+ StoredDocument doc2 = searcher.doc(result[x].doc);
+ StorableField[] v = doc2.getFields("tracer" + fieldSuffix);
+ StorableField[] v2 = doc2.getFields("tracer2" + fieldSuffix);
for (int j = 0; j < v.length; ++j) {
buff.append(v[j] + "(" + v2[j] + ")(" + result[x].doc+")\n");
if (last != null) {
@@ -1230,8 +1232,8 @@ public class TestSort extends LuceneTest
StringBuilder buff = new StringBuilder(10);
int n = result.length;
for (int i=0; i<n; ++i) {
- Document doc = searcher.doc(result[i].doc);
- IndexableField[] v = doc.getFields("tracer");
+ StoredDocument doc = searcher.doc(result[i].doc);
+ StorableField[] v = doc.getFields("tracer");
for (int j=0; j<v.length; ++j) {
buff.append (v[j].stringValue());
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermQuery.java Fri Sep 21 17:21:34 2012
@@ -43,7 +43,7 @@ public class TestTermQuery extends Lucen
private String fieldName = "field";
/**
- * Simple testcase for {@link TermScorer#positions()}
+ * Simple testcase for {@link TermScorer#positions(boolean)}
*/
public void testPositionsSimple() throws IOException {
Directory directory = newDirectory();
@@ -74,7 +74,7 @@ public class TestTermQuery extends Lucen
for (int i = 0; i < 39 * RANDOM_MULTIPLIER; i++) {
TermQuery one = new TermQuery(new Term(fieldName, "1"));
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
Weight weight = one.createWeight(searcher);
for (AtomicReaderContext atomicReaderContext : leaves) {
@@ -169,7 +169,7 @@ public class TestTermQuery extends Lucen
for (int i = 0; i < 39 * RANDOM_MULTIPLIER; i++) {
TermQuery one = new TermQuery(new Term(fieldName, "" + term));
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
Weight weight = one.createWeight(searcher);
for (AtomicReaderContext atomicReaderContext : leaves) {
@@ -254,7 +254,7 @@ public class TestTermQuery extends Lucen
for (int i = 0; i < 39 * RANDOM_MULTIPLIER; i++) {
TermQuery one = new TermQuery(new Term(fieldName, "even"));
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
Weight weight = one.createWeight(searcher);
Interval interval = null;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java?rev=1388574&r1=1388573&r2=1388574&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java Fri Sep 21 17:21:34 2012
@@ -227,8 +227,7 @@ public class TestTermRangeQuery extends
}
@Override
- public final void setReader(Reader reader) throws IOException {
- super.setReader(reader);
+ public void reset() throws IOException {;
done = false;
}
}