You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by bu...@apache.org on 2011/01/13 20:53:39 UTC
svn commit: r1058718 [9/18] - in /lucene/dev/branches/realtime_search: ./
lucene/ lucene/contrib/ lucene/contrib/ant/src/java/org/apache/lucene/ant/
lucene/contrib/ant/src/test/org/apache/lucene/ant/
lucene/contrib/benchmark/ lucene/contrib/demo/src/ja...
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestCodecs.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestCodecs.java Thu Jan 13 19:53:21 2011
@@ -23,14 +23,15 @@ import java.util.HashSet;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.Field;
import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.index.codecs.FieldsConsumer;
import org.apache.lucene.index.codecs.FieldsProducer;
import org.apache.lucene.index.codecs.PostingsConsumer;
import org.apache.lucene.index.codecs.TermsConsumer;
import org.apache.lucene.index.codecs.mocksep.MockSepCodec;
+import org.apache.lucene.index.codecs.preflex.PreFlexCodec;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
@@ -40,6 +41,7 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.Version;
+import org.apache.lucene.util._TestUtil;
// TODO: test multiple codecs here?
@@ -68,43 +70,6 @@ public class TestCodecs extends LuceneTe
private final static int DOC_FREQ_RAND = 500; // must be > 16 to test skipping
private final static int TERM_DOC_FREQ_RAND = 20;
- // start is inclusive and end is exclusive
- public int nextInt(final int start, final int end) {
- return start + random.nextInt(end-start);
- }
-
- private int nextInt(final int lim) {
- return random.nextInt(lim);
- }
-
- char[] getRandomText() {
-
- final int len = 1+this.nextInt(10);
- final char[] buffer = new char[len+1];
- for(int i=0;i<len;i++) {
- buffer[i] = (char) this.nextInt(97, 123);
- /*
- final int t = nextInt(5);
- if (0 == t && i < len-1) {
- // Make a surrogate pair
- // High surrogate
- buffer[i++] = (char) nextInt(0xd800, 0xdc00);
- // Low surrogate
- buffer[i] = (char) nextInt(0xdc00, 0xe000);
- } else if (t <= 1)
- buffer[i] = (char) nextInt(0x80);
- else if (2 == t)
- buffer[i] = (char) nextInt(0x80, 0x800);
- else if (3 == t)
- buffer[i] = (char) nextInt(0x800, 0xd800);
- else
- buffer[i] = (char) nextInt(0xe000, 0xffff);
- */
- }
- buffer[len] = 0xffff;
- return buffer;
- }
-
class FieldData implements Comparable {
final FieldInfo fieldInfo;
final TermData[] terms;
@@ -163,7 +128,7 @@ public class TestCodecs extends LuceneTe
}
public int compareTo(final Object o) {
- return text2.compareTo(((TermData) o).text2);
+ return text.compareTo(((TermData) o).text);
}
public void write(final TermsConsumer termsConsumer) throws Throwable {
@@ -191,7 +156,7 @@ public class TestCodecs extends LuceneTe
final private static String SEGMENT = "0";
TermData[] makeRandomTerms(final boolean omitTF, final boolean storePayloads) {
- final int numTerms = 1+this.nextInt(NUM_TERMS_RAND);
+ final int numTerms = 1+random.nextInt(NUM_TERMS_RAND);
//final int numTerms = 2;
final TermData[] terms = new TermData[numTerms];
@@ -200,18 +165,16 @@ public class TestCodecs extends LuceneTe
for(int i=0;i<numTerms;i++) {
// Make term text
- char[] text;
String text2;
while(true) {
- text = this.getRandomText();
- text2 = new String(text, 0, text.length-1);
- if (!termsSeen.contains(text2)) {
+ text2 = _TestUtil.randomUnicodeString(random);
+ if (!termsSeen.contains(text2) && !text2.endsWith(".")) {
termsSeen.add(text2);
break;
}
}
- final int docFreq = 1+this.nextInt(DOC_FREQ_RAND);
+ final int docFreq = 1+random.nextInt(DOC_FREQ_RAND);
final int[] docs = new int[docFreq];
PositionData[][] positions;
@@ -222,21 +185,21 @@ public class TestCodecs extends LuceneTe
int docID = 0;
for(int j=0;j<docFreq;j++) {
- docID += this.nextInt(1, 10);
+ docID += _TestUtil.nextInt(random, 1, 10);
docs[j] = docID;
if (!omitTF) {
- final int termFreq = 1+this.nextInt(TERM_DOC_FREQ_RAND);
+ final int termFreq = 1+random.nextInt(TERM_DOC_FREQ_RAND);
positions[j] = new PositionData[termFreq];
int position = 0;
for(int k=0;k<termFreq;k++) {
- position += this.nextInt(1, 10);
+ position += _TestUtil.nextInt(random, 1, 10);
final BytesRef payload;
- if (storePayloads && this.nextInt(4) == 0) {
- final byte[] bytes = new byte[1+this.nextInt(5)];
+ if (storePayloads && random.nextInt(4) == 0) {
+ final byte[] bytes = new byte[1+random.nextInt(5)];
for(int l=0;l<bytes.length;l++) {
- bytes[l] = (byte) this.nextInt(255);
+ bytes[l] = (byte) random.nextInt(255);
}
payload = new BytesRef(bytes);
} else {
@@ -269,7 +232,7 @@ public class TestCodecs extends LuceneTe
final FieldData[] fields = new FieldData[] {field};
final Directory dir = newDirectory();
- this.write(fieldInfos, dir, fields);
+ this.write(fieldInfos, dir, fields, true);
final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, true, SegmentCodecs.build(fieldInfos, CodecProvider.getDefault()), fieldInfos.hasVectors());
si.setHasProx(false);
@@ -317,19 +280,25 @@ public class TestCodecs extends LuceneTe
final Directory dir = newDirectory();
- this.write(fieldInfos, dir, fields);
+ if (VERBOSE) {
+ System.out.println("TEST: now write postings");
+ }
+ this.write(fieldInfos, dir, fields, false);
final SegmentInfo si = new SegmentInfo(SEGMENT, 10000, dir, false, true, SegmentCodecs.build(fieldInfos, CodecProvider.getDefault()), fieldInfos.hasVectors());
+ if (VERBOSE) {
+ System.out.println("TEST: now read postings");
+ }
final FieldsProducer terms = si.getSegmentCodecs().codec().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, 1024, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR));
final Verify[] threads = new Verify[NUM_TEST_THREADS-1];
for(int i=0;i<NUM_TEST_THREADS-1;i++) {
- threads[i] = new Verify(fields, terms);
+ threads[i] = new Verify(si, fields, terms);
threads[i].setDaemon(true);
threads[i].start();
}
- new Verify(fields, terms).run();
+ new Verify(si, fields, terms).run();
for(int i=0;i<NUM_TEST_THREADS-1;i++) {
threads[i].join();
@@ -409,11 +378,13 @@ public class TestCodecs extends LuceneTe
private class Verify extends Thread {
final Fields termsDict;
final FieldData[] fields;
+ final SegmentInfo si;
volatile boolean failed;
- Verify(final FieldData[] fields, final Fields termsDict) {
+ Verify(final SegmentInfo si, final FieldData[] fields, final Fields termsDict) {
this.fields = fields;
this.termsDict = termsDict;
+ this.si = si;
}
@Override
@@ -446,7 +417,7 @@ public class TestCodecs extends LuceneTe
assertEquals(positions[i].pos, pos);
if (positions[i].payload != null) {
assertTrue(posEnum.hasPayload());
- if (TestCodecs.this.nextInt(3) < 2) {
+ if (TestCodecs.random.nextInt(3) < 2) {
// Verify the payload bytes
final BytesRef otherPayload = posEnum.getPayload();
assertTrue("expected=" + positions[i].payload.toString() + " got=" + otherPayload.toString(), positions[i].payload.equals(otherPayload));
@@ -460,22 +431,28 @@ public class TestCodecs extends LuceneTe
public void _run() throws Throwable {
for(int iter=0;iter<NUM_TEST_ITER;iter++) {
- final FieldData field = fields[TestCodecs.this.nextInt(fields.length)];
+ final FieldData field = fields[TestCodecs.random.nextInt(fields.length)];
final TermsEnum termsEnum = termsDict.terms(field.fieldInfo.name).iterator();
- // Test straight enum of the terms:
+ if (si.getSegmentCodecs().codecs[field.fieldInfo.codecId] instanceof PreFlexCodec) {
+ // code below expects unicode sort order
+ continue;
+ }
+
int upto = 0;
+ // Test straight enum of the terms:
while(true) {
final BytesRef term = termsEnum.next();
if (term == null) {
break;
}
- assertTrue(new BytesRef(field.terms[upto++].text2).bytesEquals(term));
+ final BytesRef expected = new BytesRef(field.terms[upto++].text2);
+ assertTrue("expected=" + expected + " vs actual " + term, expected.bytesEquals(term));
}
assertEquals(upto, field.terms.length);
// Test random seek:
- TermData term = field.terms[TestCodecs.this.nextInt(field.terms.length)];
+ TermData term = field.terms[TestCodecs.random.nextInt(field.terms.length)];
TermsEnum.SeekStatus status = termsEnum.seek(new BytesRef(term.text2));
assertEquals(status, TermsEnum.SeekStatus.FOUND);
assertEquals(term.docs.length, termsEnum.docFreq());
@@ -486,7 +463,7 @@ public class TestCodecs extends LuceneTe
}
// Test random seek by ord:
- final int idx = TestCodecs.this.nextInt(field.terms.length);
+ final int idx = TestCodecs.random.nextInt(field.terms.length);
term = field.terms[idx];
try {
status = termsEnum.seek(idx);
@@ -507,8 +484,7 @@ public class TestCodecs extends LuceneTe
// Test seek to non-existent terms:
for(int i=0;i<100;i++) {
- final char[] text = TestCodecs.this.getRandomText();
- final String text2 = new String(text, 0, text.length-1) + ".";
+ final String text2 = _TestUtil.randomUnicodeString(random) + ".";
status = termsEnum.seek(new BytesRef(text2));
assertTrue(status == TermsEnum.SeekStatus.NOT_FOUND ||
status == TermsEnum.SeekStatus.END);
@@ -533,7 +509,7 @@ public class TestCodecs extends LuceneTe
// Seek to non-existent empty-string term
status = termsEnum.seek(new BytesRef(""));
assertNotNull(status);
- assertEquals(status, TermsEnum.SeekStatus.NOT_FOUND);
+ //assertEquals(TermsEnum.SeekStatus.NOT_FOUND, status);
// Make sure we're now pointing to first term
assertTrue(termsEnum.term().bytesEquals(new BytesRef(field.terms[0].text2)));
@@ -543,7 +519,7 @@ public class TestCodecs extends LuceneTe
upto = 0;
do {
term = field.terms[upto];
- if (TestCodecs.this.nextInt(3) == 1) {
+ if (TestCodecs.random.nextInt(3) == 1) {
final DocsEnum docs = termsEnum.docs(null, null);
final DocsAndPositionsEnum postings = termsEnum.docsAndPositions(null, null);
@@ -558,10 +534,10 @@ public class TestCodecs extends LuceneTe
// Maybe skip:
final int left = term.docs.length-upto2;
int doc;
- if (TestCodecs.this.nextInt(3) == 1 && left >= 1) {
- final int inc = 1+TestCodecs.this.nextInt(left-1);
+ if (TestCodecs.random.nextInt(3) == 1 && left >= 1) {
+ final int inc = 1+TestCodecs.random.nextInt(left-1);
upto2 += inc;
- if (TestCodecs.this.nextInt(2) == 1) {
+ if (TestCodecs.random.nextInt(2) == 1) {
doc = docsEnum.advance(term.docs[upto2]);
assertEquals(term.docs[upto2], doc);
} else {
@@ -586,7 +562,7 @@ public class TestCodecs extends LuceneTe
assertEquals(term.docs[upto2], doc);
if (!field.omitTF) {
assertEquals(term.positions[upto2].length, docsEnum.freq());
- if (TestCodecs.this.nextInt(2) == 1) {
+ if (TestCodecs.random.nextInt(2) == 1) {
this.verifyPositions(term.positions[upto2], postings);
}
}
@@ -603,15 +579,19 @@ public class TestCodecs extends LuceneTe
}
}
- private void write(final FieldInfos fieldInfos, final Directory dir, final FieldData[] fields) throws Throwable {
+ private void write(final FieldInfos fieldInfos, final Directory dir, final FieldData[] fields, boolean allowPreFlex) throws Throwable {
- final int termIndexInterval = this.nextInt(13, 27);
+ final int termIndexInterval = _TestUtil.nextInt(random, 13, 27);
final SegmentCodecs codecInfo = SegmentCodecs.build(fieldInfos, CodecProvider.getDefault());
final SegmentWriteState state = new SegmentWriteState(null, dir, SEGMENT, fieldInfos, 10000, termIndexInterval, codecInfo);
final FieldsConsumer consumer = state.segmentCodecs.codec().fieldsConsumer(state);
Arrays.sort(fields);
for (final FieldData field : fields) {
+ if (!allowPreFlex && codecInfo.codecs[field.fieldInfo.codecId] instanceof PreFlexCodec) {
+ // code below expects unicode sort order
+ continue;
+ }
field.write(consumer);
}
consumer.close();
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java Thu Jan 13 19:53:21 2011
@@ -30,6 +30,7 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.Similarity;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
@@ -607,7 +608,7 @@ public class TestDeletionPolicy extends
writer.close();
IndexReader reader = IndexReader.open(dir, policy, false);
reader.deleteDocument(3*i+1);
- reader.setNorm(4*i+1, "content", 2.0F);
+ reader.setNorm(4*i+1, "content", Similarity.getDefault().encodeNormValue(2.0F));
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
assertEquals(16*(1+i), hits.length);
@@ -715,7 +716,7 @@ public class TestDeletionPolicy extends
writer.close();
IndexReader reader = IndexReader.open(dir, policy, false);
reader.deleteDocument(3);
- reader.setNorm(5, "content", 2.0F);
+ reader.setNorm(5, "content", Similarity.getDefault().encodeNormValue(2.0F));
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
assertEquals(16, hits.length);
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDoc.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestDoc.java Thu Jan 13 19:53:21 2011
@@ -201,11 +201,12 @@ public class TestDoc extends LuceneTestC
r2.close();
final SegmentInfo info = new SegmentInfo(merged, si1.docCount + si2.docCount, si1.dir,
- useCompoundFile, merger.fieldInfos().hasProx(), merger.getSegmentCodecs(),
+ false, merger.fieldInfos().hasProx(), merger.getSegmentCodecs(),
merger.fieldInfos().hasVectors());
if (useCompoundFile) {
Collection<String> filesToDelete = merger.createCompoundFile(merged + ".cfs", info);
+ info.setUseCompoundFile(true);
for (final String fileToDelete : filesToDelete)
si1.dir.deleteFile(fileToDelete);
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestFlex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestFlex.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestFlex.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestFlex.java Thu Jan 13 19:53:21 2011
@@ -71,7 +71,11 @@ public class TestFlex extends LuceneTest
IndexReader r = w.getReader();
TermsEnum terms = r.getSequentialSubReaders()[0].fields().terms("f").iterator();
assertTrue(terms.next() != null);
- assertEquals(0, terms.ord());
+ try {
+ assertEquals(0, terms.ord());
+ } catch (UnsupportedOperationException uoe) {
+ // ok -- codec is not required to support this op
+ }
r.close();
w.close();
d.close();
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java Thu Jan 13 19:53:21 2011
@@ -18,6 +18,7 @@ package org.apache.lucene.index;
*/
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.search.Similarity;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.store.IndexOutput;
@@ -68,7 +69,7 @@ public class TestIndexFileDeleter extend
assertEquals("didn't delete the right number of documents", 1, delCount);
// Set one norm so we get a .s0 file:
- reader.setNorm(21, "content", (float) 1.5);
+ reader.setNorm(21, "content", Similarity.getDefault().encodeNormValue(1.5f));
reader.close();
// Now, artificially create an extra .del file & extra
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Thu Jan 13 19:53:21 2011
@@ -43,6 +43,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.Similarity;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
@@ -329,6 +330,7 @@ public class TestIndexReader extends Luc
// add 100 documents with term : aaa
writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
+ writer.setInfoStream(VERBOSE ? System.out : null);
for (int i = 0; i < 100; i++) {
addDoc(writer, searchTerm.text());
}
@@ -463,7 +465,7 @@ public class TestIndexReader extends Luc
}
try {
- reader.setNorm(5, "aaa", 2.0f);
+ reader.setNorm(5, "aaa", Similarity.getDefault().encodeNormValue(2.0f));
fail("setNorm after close failed to throw IOException");
} catch (AlreadyClosedException e) {
// expected
@@ -503,7 +505,7 @@ public class TestIndexReader extends Luc
}
try {
- reader.setNorm(5, "aaa", 2.0f);
+ reader.setNorm(5, "aaa", Similarity.getDefault().encodeNormValue(2.0f));
fail("setNorm should have hit LockObtainFailedException");
} catch (LockObtainFailedException e) {
// expected
@@ -533,7 +535,7 @@ public class TestIndexReader extends Luc
// now open reader & set norm for doc 0
IndexReader reader = IndexReader.open(dir, false);
- reader.setNorm(0, "content", (float) 2.0);
+ reader.setNorm(0, "content", Similarity.getDefault().encodeNormValue(2.0f));
// we should be holding the write lock now:
assertTrue("locked", IndexWriter.isLocked(dir));
@@ -547,7 +549,7 @@ public class TestIndexReader extends Luc
IndexReader reader2 = IndexReader.open(dir, false);
// set norm again for doc 0
- reader.setNorm(0, "content", (float) 3.0);
+ reader.setNorm(0, "content", Similarity.getDefault().encodeNormValue(3.0f));
assertTrue("locked", IndexWriter.isLocked(dir));
reader.close();
@@ -580,12 +582,12 @@ public class TestIndexReader extends Luc
// now open reader & set norm for doc 0 (writes to
// _0_1.s0)
reader = IndexReader.open(dir, false);
- reader.setNorm(0, "content", (float) 2.0);
+ reader.setNorm(0, "content", Similarity.getDefault().encodeNormValue(2.0f));
reader.close();
// now open reader again & set norm for doc 0 (writes to _0_2.s0)
reader = IndexReader.open(dir, false);
- reader.setNorm(0, "content", (float) 2.0);
+ reader.setNorm(0, "content", Similarity.getDefault().encodeNormValue(2.0f));
reader.close();
assertFalse("failed to remove first generation norms file on writing second generation",
dir.fileExists("_0_1.s0"));
@@ -953,7 +955,7 @@ public class TestIndexReader extends Luc
int docId = 12;
for(int i=0;i<13;i++) {
reader.deleteDocument(docId);
- reader.setNorm(docId, "content", (float) 2.0);
+ reader.setNorm(docId, "content", Similarity.getDefault().encodeNormValue(2.0f));
docId += 12;
}
}
@@ -981,6 +983,7 @@ public class TestIndexReader extends Luc
// new IndexFileDeleter, have it delete
// unreferenced files, then verify that in fact
// no files were deleted:
+ IndexWriter.unlock(dir);
TestIndexWriter.assertNoUnreferencedFiles(dir, "reader.close() failed to delete unreferenced files");
// Finally, verify index is not corrupt, and, if
@@ -1111,7 +1114,7 @@ public class TestIndexReader extends Luc
reader = IndexReader.open(dir, false);
try {
- reader.setNorm(1, "content", (float) 2.0);
+ reader.setNorm(1, "content", Similarity.getDefault().encodeNormValue(2.0f));
fail("did not hit exception when calling setNorm on an invalid doc number");
} catch (ArrayIndexOutOfBoundsException e) {
// expected
@@ -1333,8 +1336,8 @@ public class TestIndexReader extends Luc
it1 = fields1.iterator();
while (it1.hasNext()) {
String curField = it1.next();
- byte[] norms1 = index1.norms(curField);
- byte[] norms2 = index2.norms(curField);
+ byte[] norms1 = MultiNorms.norms(index1, curField);
+ byte[] norms2 = MultiNorms.norms(index2, curField);
if (norms1 != null && norms2 != null)
{
assertEquals(norms1.length, norms2.length);
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java Thu Jan 13 19:53:21 2011
@@ -272,13 +272,13 @@ public class TestIndexReaderClone extend
* @throws Exception
*/
private void performDefaultTests(IndexReader r1) throws Exception {
- float norm1 = Similarity.getDefault().decodeNormValue(r1.norms("field1")[4]);
+ float norm1 = Similarity.getDefault().decodeNormValue(MultiNorms.norms(r1, "field1")[4]);
IndexReader pr1Clone = (IndexReader) r1.clone();
pr1Clone.deleteDocument(10);
- pr1Clone.setNorm(4, "field1", 0.5f);
- assertTrue(Similarity.getDefault().decodeNormValue(r1.norms("field1")[4]) == norm1);
- assertTrue(Similarity.getDefault().decodeNormValue(pr1Clone.norms("field1")[4]) != norm1);
+ pr1Clone.setNorm(4, "field1", Similarity.getDefault().encodeNormValue(0.5f));
+ assertTrue(Similarity.getDefault().decodeNormValue(MultiNorms.norms(r1, "field1")[4]) == norm1);
+ assertTrue(Similarity.getDefault().decodeNormValue(MultiNorms.norms(pr1Clone, "field1")[4]) != norm1);
final Bits delDocs = MultiFields.getDeletedDocs(r1);
assertTrue(delDocs == null || !delDocs.get(10));
@@ -327,7 +327,7 @@ public class TestIndexReaderClone extend
TestIndexReaderReopen.createIndex(random, dir1, false);
SegmentReader origSegmentReader = getOnlySegmentReader(IndexReader.open(dir1, false));
origSegmentReader.deleteDocument(1);
- origSegmentReader.setNorm(4, "field1", 0.5f);
+ origSegmentReader.setNorm(4, "field1", Similarity.getDefault().encodeNormValue(0.5f));
SegmentReader clonedSegmentReader = (SegmentReader) origSegmentReader
.clone();
@@ -426,9 +426,9 @@ public class TestIndexReaderClone extend
final Directory dir1 = newDirectory();
TestIndexReaderReopen.createIndex(random, dir1, false);
IndexReader orig = IndexReader.open(dir1, false);
- orig.setNorm(1, "field1", 17.0f);
+ orig.setNorm(1, "field1", Similarity.getDefault().encodeNormValue(17.0f));
final byte encoded = Similarity.getDefault().encodeNormValue(17.0f);
- assertEquals(encoded, orig.norms("field1")[1]);
+ assertEquals(encoded, MultiNorms.norms(orig, "field1")[1]);
// the cloned segmentreader should have 2 references, 1 to itself, and 1 to
// the original segmentreader
@@ -437,7 +437,7 @@ public class TestIndexReaderClone extend
clonedReader.close();
IndexReader r = IndexReader.open(dir1, false);
- assertEquals(encoded, r.norms("field1")[1]);
+ assertEquals(encoded, MultiNorms.norms(r, "field1")[1]);
r.close();
dir1.close();
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java Thu Jan 13 19:53:21 2011
@@ -42,8 +42,9 @@ public class TestIndexReaderCloneNorms e
private class SimilarityOne extends DefaultSimilarity {
@Override
- public float lengthNorm(String fieldName, int numTerms) {
- return 1;
+ public float computeNorm(String fieldName, FieldInvertState state) {
+ // diable length norm
+ return state.getBoost();
}
}
@@ -202,11 +203,11 @@ public class TestIndexReaderCloneNorms e
IndexReader reader4C = (IndexReader) reader3C.clone();
SegmentReader segmentReader4C = getOnlySegmentReader(reader4C);
assertEquals(4, reader3CCNorm.bytesRef().get());
- reader4C.setNorm(5, "field1", 0.33f);
+ reader4C.setNorm(5, "field1", Similarity.getDefault().encodeNormValue(0.33f));
// generate a cannot update exception in reader1
try {
- reader3C.setNorm(1, "field1", 0.99f);
+ reader3C.setNorm(1, "field1", Similarity.getDefault().encodeNormValue(0.99f));
fail("did not hit expected exception");
} catch (Exception ex) {
// expected
@@ -222,7 +223,7 @@ public class TestIndexReaderCloneNorms e
IndexReader reader5C = (IndexReader) reader4C.clone();
SegmentReader segmentReader5C = getOnlySegmentReader(reader5C);
Norm reader5CCNorm = segmentReader5C.norms.get("field1");
- reader5C.setNorm(5, "field1", 0.7f);
+ reader5C.setNorm(5, "field1", Similarity.getDefault().encodeNormValue(0.7f));
assertEquals(1, reader5CCNorm.bytesRef().get());
reader5C.close();
@@ -255,8 +256,8 @@ public class TestIndexReaderCloneNorms e
// System.out.println(" and: for "+k+" from "+newNorm+" to "+origNorm);
modifiedNorms.set(i, Float.valueOf(newNorm));
modifiedNorms.set(k, Float.valueOf(origNorm));
- ir.setNorm(i, "f" + 1, newNorm);
- ir.setNorm(k, "f" + 1, origNorm);
+ ir.setNorm(i, "f" + 1, Similarity.getDefault().encodeNormValue(newNorm));
+ ir.setNorm(k, "f" + 1, Similarity.getDefault().encodeNormValue(origNorm));
// System.out.println("setNorm i: "+i);
// break;
}
@@ -272,7 +273,7 @@ public class TestIndexReaderCloneNorms e
private void verifyIndex(IndexReader ir) throws IOException {
for (int i = 0; i < NUM_FIELDS; i++) {
String field = "f" + i;
- byte b[] = ir.norms(field);
+ byte b[] = MultiNorms.norms(ir, field);
assertEquals("number of norms mismatches", numDocNorms, b.length);
ArrayList<Float> storedNorms = (i == 1 ? modifiedNorms : norms);
for (int j = 0; j < b.length; j++) {
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java Thu Jan 13 19:53:21 2011
@@ -37,6 +37,7 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.Similarity;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
@@ -614,8 +615,8 @@ public class TestIndexReaderReopen exten
IndexReader reader2 = reader1.reopen();
modifier = IndexReader.open(dir1, false);
- modifier.setNorm(1, "field1", 50);
- modifier.setNorm(1, "field2", 50);
+ modifier.setNorm(1, "field1", Similarity.getDefault().encodeNormValue(50f));
+ modifier.setNorm(1, "field2", Similarity.getDefault().encodeNormValue(50f));
modifier.close();
IndexReader reader3 = reader2.reopen();
@@ -708,7 +709,7 @@ public class TestIndexReaderReopen exten
protected void modifyIndex(int i) throws IOException {
if (i % 3 == 0) {
IndexReader modifier = IndexReader.open(dir, false);
- modifier.setNorm(i, "field1", 50);
+ modifier.setNorm(i, "field1", Similarity.getDefault().encodeNormValue(50f));
modifier.close();
} else if (i % 3 == 1) {
IndexReader modifier = IndexReader.open(dir, false);
@@ -984,9 +985,9 @@ public class TestIndexReaderReopen exten
}
case 1: {
IndexReader reader = IndexReader.open(dir, false);
- reader.setNorm(4, "field1", 123);
- reader.setNorm(44, "field2", 222);
- reader.setNorm(44, "field4", 22);
+ reader.setNorm(4, "field1", Similarity.getDefault().encodeNormValue(123f));
+ reader.setNorm(44, "field2", Similarity.getDefault().encodeNormValue(222f));
+ reader.setNorm(44, "field4", Similarity.getDefault().encodeNormValue(22f));
reader.close();
break;
}
@@ -1007,8 +1008,8 @@ public class TestIndexReaderReopen exten
}
case 4: {
IndexReader reader = IndexReader.open(dir, false);
- reader.setNorm(5, "field1", 123);
- reader.setNorm(55, "field2", 222);
+ reader.setNorm(5, "field1", Similarity.getDefault().encodeNormValue(123f));
+ reader.setNorm(55, "field2", Similarity.getDefault().encodeNormValue(222f));
reader.close();
break;
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Thu Jan 13 19:53:21 2011
@@ -43,7 +43,6 @@ import org.apache.lucene.analysis.tokena
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field.TermVector;
@@ -157,7 +156,7 @@ public class TestIndexWriter extends Luc
String[] startFiles = dir.listAll();
SegmentInfos infos = new SegmentInfos();
infos.read(dir);
- new IndexFileDeleter(dir, new KeepOnlyLastCommitDeletionPolicy(), infos, null, CodecProvider.getDefault());
+ new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer())).rollback();
String[] endFiles = dir.listAll();
Arrays.sort(startFiles);
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Thu Jan 13 19:53:21 2011
@@ -832,8 +832,8 @@ public class TestIndexWriterDelete exten
}
}
- TestIndexWriter.assertNoUnreferencedFiles(dir, "docsWriter.abort() failed to delete unreferenced files");
modifier.close();
+ TestIndexWriter.assertNoUnreferencedFiles(dir, "docsWriter.abort() failed to delete unreferenced files");
dir.close();
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Thu Jan 13 19:53:21 2011
@@ -27,7 +27,6 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.Searcher;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.store.MockDirectoryWrapper;
@@ -40,7 +39,7 @@ import org.apache.lucene.util.BytesRef;
*
*/
public class TestLazyProxSkipping extends LuceneTestCase {
- private Searcher searcher;
+ private IndexSearcher searcher;
private int seeksCounter = 0;
private String field = "tokens";
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java Thu Jan 13 19:53:21 2011
@@ -25,6 +25,9 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
@@ -38,6 +41,7 @@ import org.apache.lucene.search.TermQuer
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.util.NamedThreadFactory;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LineFileDocs;
@@ -61,7 +65,7 @@ public class TestNRTThreads extends Luce
CodecProvider.getDefault().setDefaultFieldCodec("Standard");
}
- final LineFileDocs docs = new LineFileDocs(true);
+ final LineFileDocs docs = new LineFileDocs(random);
final File tempDir = _TestUtil.getTempDir("nrtopenfiles");
final MockDirectoryWrapper dir = new MockDirectoryWrapper(random, FSDirectory.open(tempDir));
final IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer());
@@ -191,6 +195,8 @@ public class TestNRTThreads extends Luce
// silly starting guess:
final AtomicInteger totTermCount = new AtomicInteger(100);
+ final ExecutorService es = Executors.newCachedThreadPool(new NamedThreadFactory("NRT search threads"));
+
while(System.currentTimeMillis() < stopTime && !failed.get()) {
if (random.nextBoolean()) {
if (VERBOSE) {
@@ -228,7 +234,7 @@ public class TestNRTThreads extends Luce
if (r.numDocs() > 0) {
- final IndexSearcher s = new IndexSearcher(r);
+ final IndexSearcher s = new IndexSearcher(r, es);
// run search threads
final long searchStopTime = System.currentTimeMillis() + 500;
@@ -302,6 +308,9 @@ public class TestNRTThreads extends Luce
}
}
+ es.shutdown();
+ es.awaitTermination(1, TimeUnit.SECONDS);
+
if (VERBOSE) {
System.out.println("TEST: all searching done [" + (System.currentTimeMillis()-t0) + " ms]");
}
@@ -340,6 +349,7 @@ public class TestNRTThreads extends Luce
assertEquals("index=" + writer.segString() + " addCount=" + addCount + " delCount=" + delCount, addCount.get() - delCount.get(), writer.numDocs());
writer.close(false);
+ _TestUtil.checkIndex(dir);
dir.close();
_TestUtil.rmDir(tempDir);
docs.close();
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNorms.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNorms.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestNorms.java Thu Jan 13 19:53:21 2011
@@ -41,8 +41,9 @@ public class TestNorms extends LuceneTes
private class SimilarityOne extends DefaultSimilarity {
@Override
- public float lengthNorm(String fieldName, int numTerms) {
- return 1;
+ public float computeNorm(String fieldName, FieldInvertState state) {
+ // Disable length norm
+ return state.getBoost();
}
}
@@ -168,8 +169,8 @@ public class TestNorms extends LuceneTes
//System.out.println(" and: for "+k+" from "+newNorm+" to "+origNorm);
modifiedNorms.set(i, Float.valueOf(newNorm));
modifiedNorms.set(k, Float.valueOf(origNorm));
- ir.setNorm(i, "f"+1, newNorm);
- ir.setNorm(k, "f"+1, origNorm);
+ ir.setNorm(i, "f"+1, Similarity.getDefault().encodeNormValue(newNorm));
+ ir.setNorm(k, "f"+1, Similarity.getDefault().encodeNormValue(origNorm));
}
ir.close();
}
@@ -179,7 +180,7 @@ public class TestNorms extends LuceneTes
IndexReader ir = IndexReader.open(dir, false);
for (int i = 0; i < NUM_FIELDS; i++) {
String field = "f"+i;
- byte b[] = ir.norms(field);
+ byte b[] = MultiNorms.norms(ir, field);
assertEquals("number of norms mismatches",numDocNorms,b.length);
ArrayList<Float> storedNorms = (i==1 ? modifiedNorms : norms);
for (int j = 0; j < b.length; j++) {
@@ -236,4 +237,52 @@ public class TestNorms extends LuceneTes
return norm;
}
+ class CustomNormEncodingSimilarity extends DefaultSimilarity {
+ @Override
+ public byte encodeNormValue(float f) {
+ return (byte) f;
+ }
+
+ @Override
+ public float decodeNormValue(byte b) {
+ return (float) b;
+ }
+
+ @Override
+ public float computeNorm(String field, FieldInvertState state) {
+ return (float) state.getLength();
+ }
+ }
+
+ // LUCENE-1260
+ public void testCustomEncoder() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer());
+ config.setSimilarity(new CustomNormEncodingSimilarity());
+ RandomIndexWriter writer = new RandomIndexWriter(random, dir, config);
+ Document doc = new Document();
+ Field foo = newField("foo", "", Field.Store.NO, Field.Index.ANALYZED);
+ Field bar = newField("bar", "", Field.Store.NO, Field.Index.ANALYZED);
+ doc.add(foo);
+ doc.add(bar);
+
+ for (int i = 0; i < 100; i++) {
+ bar.setValue("singleton");
+ writer.addDocument(doc);
+ }
+
+ IndexReader reader = writer.getReader();
+ writer.close();
+
+ byte fooNorms[] = MultiNorms.norms(reader, "foo");
+ for (int i = 0; i < reader.maxDoc(); i++)
+ assertEquals(0, fooNorms[i]);
+
+ byte barNorms[] = MultiNorms.norms(reader, "bar");
+ for (int i = 0; i < reader.maxDoc(); i++)
+ assertEquals(1, barNorms[i]);
+
+ reader.close();
+ dir.close();
+ }
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestOmitTf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestOmitTf.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestOmitTf.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestOmitTf.java Thu Jan 13 19:53:21 2011
@@ -26,6 +26,7 @@ import org.apache.lucene.analysis.Analyz
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.search.*;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.store.Directory;
@@ -35,13 +36,13 @@ import org.apache.lucene.search.Explanat
public class TestOmitTf extends LuceneTestCase {
public static class SimpleSimilarity extends Similarity {
- @Override public float lengthNorm(String field, int numTerms) { return 1.0f; }
+ @Override public float computeNorm(String field, FieldInvertState state) { return state.getBoost(); }
@Override public float queryNorm(float sumOfSquaredWeights) { return 1.0f; }
@Override public float tf(float freq) { return freq; }
@Override public float sloppyFreq(int distance) { return 2.0f; }
@Override public float idf(int docFreq, int numDocs) { return 1.0f; }
@Override public float coord(int overlap, int maxOverlap) { return 1.0f; }
- @Override public IDFExplanation idfExplain(Collection<Term> terms, Searcher searcher) throws IOException {
+ @Override public IDFExplanation idfExplain(Collection<Term> terms, IndexSearcher searcher) throws IOException {
return new IDFExplanation() {
@Override
public float getIdf() {
@@ -279,7 +280,7 @@ public class TestOmitTf extends LuceneTe
/*
* Verify the index
*/
- Searcher searcher = new IndexSearcher(dir, true);
+ IndexSearcher searcher = new IndexSearcher(dir, true);
searcher.setSimilarity(new SimpleSimilarity());
Term a = new Term("noTf", term);
@@ -414,8 +415,8 @@ public class TestOmitTf extends LuceneTe
public static int getSum() { return sum; }
@Override
- public void setNextReader(IndexReader reader, int docBase) {
- this.docBase = docBase;
+ public void setNextReader(AtomicReaderContext context) {
+ docBase = context.docBase;
}
@Override
public boolean acceptsDocsOutOfOrder() {
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestParallelReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestParallelReader.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestParallelReader.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestParallelReader.java Thu Jan 13 19:53:21 2011
@@ -147,7 +147,7 @@ public class TestParallelReader extends
assertTrue(pr.isCurrent());
IndexReader modifier = IndexReader.open(dir1, false);
- modifier.setNorm(0, "f1", 100);
+ modifier.setNorm(0, "f1", Similarity.getDefault().encodeNormValue(100f));
modifier.close();
// one of the two IndexReaders which ParallelReader is using
@@ -155,7 +155,7 @@ public class TestParallelReader extends
assertFalse(pr.isCurrent());
modifier = IndexReader.open(dir2, false);
- modifier.setNorm(0, "f3", 100);
+ modifier.setNorm(0, "f3", Similarity.getDefault().encodeNormValue(100f));
modifier.close();
// now both are not current anymore
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestPerFieldCodecSupport.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestPerFieldCodecSupport.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestPerFieldCodecSupport.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestPerFieldCodecSupport.java Thu Jan 13 19:53:21 2011
@@ -56,6 +56,7 @@ public class TestPerFieldCodecSupport ex
conf.setMergePolicy(logByteSizeMergePolicy);
final IndexWriter writer = new IndexWriter(dir, conf);
+ writer.setInfoStream(VERBOSE ? System.out : null);
return writer;
}
@@ -110,12 +111,15 @@ public class TestPerFieldCodecSupport ex
}
/*
- * Test is hetrogenous index segements are merge sucessfully
+ * Test that heterogeneous index segments are merged sucessfully
*/
@Test
public void testChangeCodecAndMerge() throws IOException {
Directory dir = newDirectory();
CodecProvider provider = new MockCodecProvider();
+ if (VERBOSE) {
+ System.out.println("TEST: make new index");
+ }
IndexWriterConfig iwconf = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer()).setOpenMode(OpenMode.CREATE).setCodecProvider(provider);
iwconf.setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH);
@@ -125,6 +129,9 @@ public class TestPerFieldCodecSupport ex
addDocs(writer, 10);
writer.commit();
assertQuery(new Term("content", "aaa"), dir, 10, provider);
+ if (VERBOSE) {
+ System.out.println("TEST: addDocs3");
+ }
addDocs3(writer, 10);
writer.commit();
writer.close();
@@ -144,6 +151,9 @@ public class TestPerFieldCodecSupport ex
iwconf.setCodecProvider(provider);
writer = newWriter(dir, iwconf);
// swap in new codec for currently written segments
+ if (VERBOSE) {
+ System.out.println("TEST: add docs w/ Standard codec for content field");
+ }
addDocs2(writer, 10);
writer.commit();
Codec origContentCodec = provider.lookup("MockSep");
@@ -152,9 +162,12 @@ public class TestPerFieldCodecSupport ex
origContentCodec, origContentCodec, newContentCodec);
assertEquals(30, writer.maxDoc());
assertQuery(new Term("content", "bbb"), dir, 10, provider);
- assertQuery(new Term("content", "ccc"), dir, 10, provider);
+ assertQuery(new Term("content", "ccc"), dir, 10, provider); ////
assertQuery(new Term("content", "aaa"), dir, 10, provider);
+ if (VERBOSE) {
+ System.out.println("TEST: add more docs w/ new codec");
+ }
addDocs2(writer, 10);
writer.commit();
assertQuery(new Term("content", "ccc"), dir, 10, provider);
@@ -162,6 +175,9 @@ public class TestPerFieldCodecSupport ex
assertQuery(new Term("content", "aaa"), dir, 10, provider);
assertEquals(40, writer.maxDoc());
+ if (VERBOSE) {
+ System.out.println("TEST: now optimize");
+ }
writer.optimize();
assertEquals(40, writer.maxDoc());
writer.close();
@@ -206,6 +222,9 @@ public class TestPerFieldCodecSupport ex
public void assertQuery(Term t, Directory dir, int num, CodecProvider codecs)
throws CorruptIndexException, IOException {
+ if (VERBOSE) {
+ System.out.println("\nTEST: assertQuery " + t);
+ }
IndexReader reader = IndexReader.open(dir, null, true,
IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, codecs);
IndexSearcher searcher = new IndexSearcher(reader);
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java Thu Jan 13 19:53:21 2011
@@ -27,7 +27,6 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.search.Similarity;
import org.apache.lucene.store.Directory;
public class TestSegmentReader extends LuceneTestCase {
@@ -180,15 +179,9 @@ public class TestSegmentReader extends L
assertEquals(reader.hasNorms(f.name()), !f.getOmitNorms());
assertEquals(reader.hasNorms(f.name()), !DocHelper.noNorms.containsKey(f.name()));
if (!reader.hasNorms(f.name())) {
- // test for fake norms of 1.0 or null depending on the flag
- byte [] norms = reader.norms(f.name());
- byte norm1 = Similarity.getDefault().encodeNormValue(1.0f);
+ // test for norms of null
+ byte [] norms = MultiNorms.norms(reader, f.name());
assertNull(norms);
- norms = new byte[reader.maxDoc()];
- reader.norms(f.name(),norms, 0);
- for (int j=0; j<reader.maxDoc(); j++) {
- assertEquals(norms[j], norm1);
- }
}
}
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java Thu Jan 13 19:53:21 2011
@@ -74,7 +74,7 @@ public class TestSegmentTermEnum extends
public void testPrevTermAtEnd() throws IOException
{
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
+ IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
addDoc(writer, "aaa bbb");
writer.close();
SegmentReader reader = getOnlySegmentReader(IndexReader.open(dir, false));
@@ -82,7 +82,14 @@ public class TestSegmentTermEnum extends
assertNotNull(terms.next());
assertEquals("aaa", terms.term().utf8ToString());
assertNotNull(terms.next());
- long ordB = terms.ord();
+ long ordB;
+ try {
+ ordB = terms.ord();
+ } catch (UnsupportedOperationException uoe) {
+ // ok -- codec is not required to support ord
+ reader.close();
+ return;
+ }
assertEquals("bbb", terms.term().utf8ToString());
assertNull(terms.next());
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockFixedIntBlockCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockFixedIntBlockCodec.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockFixedIntBlockCodec.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockFixedIntBlockCodec.java Thu Jan 13 19:53:21 2011
@@ -67,10 +67,15 @@ public class MockFixedIntBlockCodec exte
// only for testing
public IntStreamFactory getIntFactory() {
- return new MockIntFactory();
+ return new MockIntFactory(blockSize);
}
- private class MockIntFactory extends IntStreamFactory {
+ public static class MockIntFactory extends IntStreamFactory {
+ private final int blockSize;
+
+ public MockIntFactory(int blockSize) {
+ this.blockSize = blockSize;
+ }
@Override
public IntIndexInput openInput(Directory dir, String fileName, int readBufferSize) throws IOException {
@@ -96,6 +101,7 @@ public class MockFixedIntBlockCodec exte
@Override
protected void flushBlock() throws IOException {
for(int i=0;i<buffer.length;i++) {
+ assert buffer[i] >= 0;
out.writeVInt(buffer[i]);
}
}
@@ -105,7 +111,7 @@ public class MockFixedIntBlockCodec exte
@Override
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
- PostingsWriterBase postingsWriter = new SepPostingsWriterImpl(state, new MockIntFactory());
+ PostingsWriterBase postingsWriter = new SepPostingsWriterImpl(state, new MockIntFactory(blockSize));
boolean success = false;
TermsIndexWriterBase indexWriter;
@@ -139,7 +145,7 @@ public class MockFixedIntBlockCodec exte
PostingsReaderBase postingsReader = new SepPostingsReaderImpl(state.dir,
state.segmentInfo,
state.readBufferSize,
- new MockIntFactory(), state.codecId);
+ new MockIntFactory(blockSize), state.codecId);
TermsIndexReaderBase indexReader;
boolean success = false;
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockVariableIntBlockCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockVariableIntBlockCodec.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockVariableIntBlockCodec.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mockintblock/MockVariableIntBlockCodec.java Thu Jan 13 19:53:21 2011
@@ -67,7 +67,13 @@ public class MockVariableIntBlockCodec e
return name + "(baseBlockSize="+ baseBlockSize + ")";
}
- private class MockIntFactory extends IntStreamFactory {
+ public static class MockIntFactory extends IntStreamFactory {
+
+ private final int baseBlockSize;
+
+ public MockIntFactory(int baseBlockSize) {
+ this.baseBlockSize = baseBlockSize;
+ }
@Override
public IntIndexInput openInput(Directory dir, String fileName, int readBufferSize) throws IOException {
@@ -104,6 +110,7 @@ public class MockVariableIntBlockCodec e
@Override
protected int add(int value) throws IOException {
+ assert value >= 0;
buffer[pendingCount++] = value;
// silly variable block length int encoder: if
// first value <= 3, we write N vints at once;
@@ -128,7 +135,7 @@ public class MockVariableIntBlockCodec e
@Override
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
- PostingsWriterBase postingsWriter = new SepPostingsWriterImpl(state, new MockIntFactory());
+ PostingsWriterBase postingsWriter = new SepPostingsWriterImpl(state, new MockIntFactory(baseBlockSize));
boolean success = false;
TermsIndexWriterBase indexWriter;
@@ -162,7 +169,7 @@ public class MockVariableIntBlockCodec e
PostingsReaderBase postingsReader = new SepPostingsReaderImpl(state.dir,
state.segmentInfo,
state.readBufferSize,
- new MockIntFactory(), state.codecId);
+ new MockIntFactory(baseBlockSize), state.codecId);
TermsIndexReaderBase indexReader;
boolean success = false;
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mocksep/MockSingleIntIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mocksep/MockSingleIntIndexOutput.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mocksep/MockSingleIntIndexOutput.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/mocksep/MockSingleIntIndexOutput.java Thu Jan 13 19:53:21 2011
@@ -42,6 +42,7 @@ public class MockSingleIntIndexOutput ex
/** Write an int to the primary file */
@Override
public void write(int v) throws IOException {
+ assert v >= 0;
out.writeVInt(v);
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/preflexrw/PreFlexFieldsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/preflexrw/PreFlexFieldsWriter.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/preflexrw/PreFlexFieldsWriter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/index/codecs/preflexrw/PreFlexFieldsWriter.java Thu Jan 13 19:53:21 2011
@@ -46,18 +46,14 @@ class PreFlexFieldsWriter extends Fields
state.segmentName,
state.fieldInfos,
state.termIndexInterval);
- state.flushedFiles.add(IndexFileNames.segmentFileName(state.segmentName, "", PreFlexCodec.TERMS_EXTENSION));
- state.flushedFiles.add(IndexFileNames.segmentFileName(state.segmentName, "", PreFlexCodec.TERMS_INDEX_EXTENSION));
final String freqFile = IndexFileNames.segmentFileName(state.segmentName, "", PreFlexCodec.FREQ_EXTENSION);
freqOut = state.directory.createOutput(freqFile);
- state.flushedFiles.add(freqFile);
totalNumDocs = state.numDocs;
if (state.fieldInfos.hasProx()) {
final String proxFile = IndexFileNames.segmentFileName(state.segmentName, "", PreFlexCodec.PROX_EXTENSION);
proxOut = state.directory.createOutput(proxFile);
- state.flushedFiles.add(proxFile);
} else {
proxOut = null;
}
Modified: lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CachingWrapperFilterHelper.java Thu Jan 13 19:53:21 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/realtime_search/lucene/src/test/org/apache/lucene/search/CheckHits.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CheckHits.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CheckHits.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/CheckHits.java Thu Jan 13 19:53:21 2011
@@ -25,6 +25,7 @@ import java.util.Random;
import junit.framework.Assert;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.store.Directory;
public class CheckHits {
@@ -42,7 +43,7 @@ public class CheckHits {
* (ie: Explanation value of 0.0f)
*/
public static void checkNoMatchExplanations(Query q, String defaultFieldName,
- Searcher searcher, int[] results)
+ IndexSearcher searcher, int[] results)
throws IOException {
String d = q.toString(defaultFieldName);
@@ -81,7 +82,7 @@ public class CheckHits {
* @see #checkHits
*/
public static void checkHitCollector(Random random, Query query, String defaultFieldName,
- Searcher searcher, int[] results)
+ IndexSearcher searcher, int[] results)
throws IOException {
QueryUtils.check(random,query,searcher);
@@ -99,18 +100,8 @@ public class CheckHits {
for (int i = -1; i < 2; i++) {
actual.clear();
- QueryUtils.wrapSearcher(random, searcher, i).search(query, c);
- Assert.assertEquals("Wrap Searcher " + i + ": " +
- query.toString(defaultFieldName),
- correct, actual);
- }
-
- if ( ! ( searcher instanceof IndexSearcher ) ) return;
-
- for (int i = -1; i < 2; i++) {
- actual.clear();
QueryUtils.wrapUnderlyingReader
- (random, (IndexSearcher)searcher, i).search(query, c);
+ (random, searcher, i).search(query, c);
Assert.assertEquals("Wrap Reader " + i + ": " +
query.toString(defaultFieldName),
correct, actual);
@@ -130,8 +121,8 @@ public class CheckHits {
bag.add(Integer.valueOf(doc + base));
}
@Override
- public void setNextReader(IndexReader reader, int docBase) {
- base = docBase;
+ public void setNextReader(AtomicReaderContext context) {
+ base = context.docBase;
}
@Override
public boolean acceptsDocsOutOfOrder() {
@@ -157,7 +148,7 @@ public class CheckHits {
Random random,
Query query,
String defaultFieldName,
- Searcher searcher,
+ IndexSearcher searcher,
int[] results)
throws IOException {
@@ -284,7 +275,7 @@ public class CheckHits {
*/
public static void checkExplanations(Query query,
String defaultFieldName,
- Searcher searcher) throws IOException {
+ IndexSearcher searcher) throws IOException {
checkExplanations(query, defaultFieldName, searcher, false);
}
@@ -301,7 +292,7 @@ public class CheckHits {
*/
public static void checkExplanations(Query query,
String defaultFieldName,
- Searcher searcher,
+ IndexSearcher searcher,
boolean deep) throws IOException {
searcher.search(query,
@@ -455,7 +446,7 @@ public class CheckHits {
public static class ExplanationAsserter extends Collector {
Query q;
- Searcher s;
+ IndexSearcher s;
String d;
boolean deep;
@@ -463,10 +454,10 @@ public class CheckHits {
private int base = 0;
/** Constructs an instance which does shallow tests on the Explanation */
- public ExplanationAsserter(Query q, String defaultFieldName, Searcher s) {
+ public ExplanationAsserter(Query q, String defaultFieldName, IndexSearcher s) {
this(q,defaultFieldName,s,false);
}
- public ExplanationAsserter(Query q, String defaultFieldName, Searcher s, boolean deep) {
+ public ExplanationAsserter(Query q, String defaultFieldName, IndexSearcher s, boolean deep) {
this.q=q;
this.s=s;
this.d = q.toString(defaultFieldName);
@@ -493,8 +484,8 @@ public class CheckHits {
verifyExplanation(d,doc,scorer.score(),deep,exp);
}
@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/realtime_search/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java Thu Jan 13 19:53:21 2011
@@ -19,12 +19,11 @@ package org.apache.lucene.search;
import java.io.IOException;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.FieldSelector;
-import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.search.Weight.ScorerContext;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.util.PriorityQueue;
/**
@@ -38,116 +37,6 @@ final class JustCompileSearch {
private static final String UNSUPPORTED_MSG = "unsupported: used for back-compat testing only !";
- static final class JustCompileSearcher extends Searcher {
-
- @Override
- protected Weight createWeight(Query query) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public void close() throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Document doc(int i) throws CorruptIndexException, IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public int[] docFreqs(Term[] terms) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Explanation explain(Query query, int doc) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Similarity getSimilarity() {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public void search(Query query, Collector results) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public void search(Query query, Filter filter, Collector results)
- throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public TopDocs search(Query query, Filter filter, int n) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public TopFieldDocs search(Query query, Filter filter, int n, Sort sort)
- throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public TopDocs search(Query query, int n) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public void setSimilarity(Similarity similarity) {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public int docFreq(Term term) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Explanation explain(Weight weight, int doc) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public int maxDoc() throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Query rewrite(Query query) throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public void search(Weight weight, Filter filter, Collector results)
- throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public TopDocs search(Weight weight, Filter filter, int n)
- throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public TopFieldDocs search(Weight weight, Filter filter, int n, Sort sort)
- throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- @Override
- public Document doc(int n, FieldSelector fieldSelector)
- throws CorruptIndexException, IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
-
- }
-
static final class JustCompileCollector extends Collector {
@Override
@@ -156,7 +45,7 @@ final class JustCompileSearch {
}
@Override
- public void setNextReader(IndexReader reader, int docBase)
+ public void setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -239,7 +128,7 @@ final class JustCompileSearch {
}
@Override
- public FieldComparator setNextReader(IndexReader reader, int docBase)
+ public FieldComparator setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -266,7 +155,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;
}
}
@@ -327,7 +216,7 @@ final class JustCompileSearch {
}
@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);
}
@@ -366,7 +255,7 @@ final class JustCompileSearch {
}
@Override
- public float lengthNorm(String fieldName, int numTokens) {
+ public float computeNorm(String fieldName, FieldInvertState state) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -395,7 +284,7 @@ final class JustCompileSearch {
}
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
return null;
}
}
@@ -412,7 +301,7 @@ final class JustCompileSearch {
}
@Override
- public void setNextReader(IndexReader reader, int docBase)
+ public void setNextReader(AtomicReaderContext context)
throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -447,7 +336,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);
}
@@ -472,7 +361,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/realtime_search/lucene/src/test/org/apache/lucene/search/MockFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MockFilter.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MockFilter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MockFilter.java Thu Jan 13 19:53:21 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/realtime_search/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java?rev=1058718&r1=1058717&r2=1058718&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/test/org/apache/lucene/search/MultiCollectorTest.java Thu Jan 13 19:53:21 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) {