You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/02/07 21:48:28 UTC
svn commit: r1443717 [8/14] - in /lucene/dev/trunk: ./ dev-tools/ lucene/
lucene/analysis/ lucene/analysis/common/
lucene/analysis/icu/src/java/org/apache/lucene/collation/
lucene/analysis/icu/src/test/org/apache/lucene/collation/ lucene/backwards/
luc...
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java Thu Feb 7 20:48:21 2013
@@ -24,6 +24,7 @@ import org.apache.lucene.codecs.LiveDocs
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.IndexSearcher;
@@ -557,6 +558,7 @@ public class TestIndexWriterOnDiskFull e
{
Document doc = new Document();
doc.add(newTextField("content", "aaa", Field.Store.NO));
+ doc.add(new NumericDocValuesField("numericdv", 1));
writer.addDocument(doc);
}
@@ -565,6 +567,7 @@ public class TestIndexWriterOnDiskFull e
Document doc = new Document();
doc.add(newTextField("content", "aaa " + index, Field.Store.NO));
doc.add(newTextField("id", "" + index, Field.Store.NO));
+ doc.add(new NumericDocValuesField("numericdv", 1));
writer.addDocument(doc);
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Thu Feb 7 20:48:21 2013
@@ -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.document.FieldType;
+import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.AlreadyClosedException;
@@ -74,6 +75,7 @@ public class TestIndexWriterWithThreads
customType.setStoreTermVectorOffsets(true);
doc.add(newField("field", "aaa bbb ccc ddd eee fff ggg hhh iii jjj", customType));
+ doc.add(new NumericDocValuesField("dv", 5));
int idUpto = 0;
int fullCount = 0;
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java Thu Feb 7 20:48:21 2013
@@ -25,7 +25,7 @@ import java.util.Iterator;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.document.Field;
-import org.apache.lucene.index.DocValues.Type;
+import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.DocIdSetIterator;
@@ -89,7 +89,7 @@ public class TestIndexableField extends
}
@Override
- public Type docValueType() {
+ public DocValuesType docValueType() {
return null;
}
};
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java Thu Feb 7 20:48:21 2013
@@ -67,9 +67,10 @@ public class TestMaxTermFrequency extend
}
public void test() throws Exception {
- byte fooNorms[] = (byte[])MultiDocValues.getNormDocValues(reader, "foo").getSource().getArray();
- for (int i = 0; i < reader.maxDoc(); i++)
- assertEquals(expected.get(i).intValue(), fooNorms[i] & 0xff);
+ NumericDocValues fooNorms = MultiDocValues.getNormValues(reader, "foo");
+ for (int i = 0; i < reader.maxDoc(); i++) {
+ assertEquals(expected.get(i).intValue(), fooNorms.get(i) & 0xff);
+ }
}
/**
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNorms.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNorms.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNorms.java Thu Feb 7 20:48:21 2013
@@ -24,8 +24,6 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.DocValues.Source;
-import org.apache.lucene.index.DocValues.Type;
import org.apache.lucene.search.CollectionStatistics;
import org.apache.lucene.search.TermStatistics;
import org.apache.lucene.search.similarities.DefaultSimilarity;
@@ -42,7 +40,7 @@ import org.apache.lucene.util._TestUtil;
* Test that norms info is preserved during index life - including
* separate norms, addDocument, addIndexes, forceMerge.
*/
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "Memory", "Direct", "SimpleText" })
@Slow
public class TestNorms extends LuceneTestCase {
final String byteTestField = "normsTestByte";
@@ -84,13 +82,15 @@ public class TestNorms extends LuceneTes
IndexReader reader = writer.getReader();
writer.close();
- byte fooNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "foo").getSource().getArray();
- for (int i = 0; i < reader.maxDoc(); i++)
- assertEquals(0, fooNorms[i]);
-
- byte barNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "bar").getSource().getArray();
- for (int i = 0; i < reader.maxDoc(); i++)
- assertEquals(1, barNorms[i]);
+ NumericDocValues fooNorms = MultiDocValues.getNormValues(reader, "foo");
+ for (int i = 0; i < reader.maxDoc(); i++) {
+ assertEquals(0, fooNorms.get(i));
+ }
+
+ NumericDocValues barNorms = MultiDocValues.getNormValues(reader, "bar");
+ for (int i = 0; i < reader.maxDoc(); i++) {
+ assertEquals(1, barNorms.get(i));
+ }
reader.close();
dir.close();
@@ -98,99 +98,33 @@ public class TestNorms extends LuceneTes
public void testMaxByteNorms() throws IOException {
Directory dir = newFSDirectory(_TestUtil.getTempDir("TestNorms.testMaxByteNorms"));
- buildIndex(dir, true);
+ buildIndex(dir);
AtomicReader open = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- DocValues normValues = open.normValues(byteTestField);
+ NumericDocValues normValues = open.getNormValues(byteTestField);
assertNotNull(normValues);
- Source source = normValues.getSource();
- assertTrue(source.hasArray());
- assertEquals(Type.FIXED_INTS_8, normValues.getType());
- byte[] norms = (byte[]) source.getArray();
for (int i = 0; i < open.maxDoc(); i++) {
StoredDocument document = open.document(i);
int expected = Integer.parseInt(document.get(byteTestField));
- assertEquals((byte)expected, norms[i]);
+ assertEquals(expected, normValues.get(i));
}
open.close();
dir.close();
}
- /**
- * this test randomly creates segments with or without norms but not omitting
- * norms. The similarity used doesn't write a norm value if writeNorms = false is
- * passed. This differs from omitNorm since norms are simply not written for this segment
- * while merging fills in default values based on the Norm {@link Type}
- */
- public void testNormsNotPresent() throws IOException {
- Directory dir = newFSDirectory(_TestUtil.getTempDir("TestNorms.testNormsNotPresent.1"));
- boolean firstWriteNorm = random().nextBoolean();
- buildIndex(dir, firstWriteNorm);
-
- Directory otherDir = newFSDirectory(_TestUtil.getTempDir("TestNorms.testNormsNotPresent.2"));
- boolean secondWriteNorm = random().nextBoolean();
- buildIndex(otherDir, secondWriteNorm);
-
- AtomicReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(otherDir));
- FieldInfos fieldInfos = reader.getFieldInfos();
- FieldInfo fieldInfo = fieldInfos.fieldInfo(byteTestField);
- assertFalse(fieldInfo.omitsNorms());
- assertTrue(fieldInfo.isIndexed());
- if (secondWriteNorm) {
- assertTrue(fieldInfo.hasNorms());
- } else {
- assertFalse(fieldInfo.hasNorms());
- }
-
- IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random()));
- RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
- writer.addIndexes(reader);
- AtomicReader mergedReader = SlowCompositeReaderWrapper.wrap(writer.getReader());
- if (!firstWriteNorm && !secondWriteNorm) {
- DocValues normValues = mergedReader.normValues(byteTestField);
- assertNull(normValues);
- FieldInfo fi = mergedReader.getFieldInfos().fieldInfo(byteTestField);
- assertFalse(fi.omitsNorms());
- assertTrue(fi.isIndexed());
- assertFalse(fi.hasNorms());
- } else {
- FieldInfo fi = mergedReader.getFieldInfos().fieldInfo(byteTestField);
- assertFalse(fi.omitsNorms());
- assertTrue(fi.isIndexed());
- assertTrue(fi.hasNorms());
-
- DocValues normValues = mergedReader.normValues(byteTestField);
- assertNotNull(normValues);
- Source source = normValues.getSource();
- assertTrue(source.hasArray());
- assertEquals(Type.FIXED_INTS_8, normValues.getType());
- byte[] norms = (byte[]) source.getArray();
- for (int i = 0; i < mergedReader.maxDoc(); i++) {
- StoredDocument document = mergedReader.document(i);
- int expected = Integer.parseInt(document.get(byteTestField));
- assertEquals((byte) expected, norms[i]);
- }
- }
- mergedReader.close();
- reader.close();
+ // TODO: create a testNormsNotPresent ourselves by adding/deleting/merging docs
- writer.close();
- dir.close();
- otherDir.close();
- }
-
- public void buildIndex(Directory dir, boolean writeNorms) throws IOException {
+ public void buildIndex(Directory dir) throws IOException {
Random random = random();
IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random()));
- Similarity provider = new MySimProvider(writeNorms);
+ Similarity provider = new MySimProvider();
config.setSimilarity(provider);
RandomIndexWriter writer = new RandomIndexWriter(random, dir, config);
final LineFileDocs docs = new LineFileDocs(random, true);
int num = atLeast(100);
for (int i = 0; i < num; i++) {
Document doc = docs.nextDoc();
- int boost = writeNorms ? 1 + random().nextInt(255) : 0;
+ int boost = random().nextInt(255);
Field f = new TextField(byteTestField, "" + boost, Field.Store.YES);
f.setBoost(boost);
doc.add(f);
@@ -208,10 +142,7 @@ public class TestNorms extends LuceneTes
public class MySimProvider extends PerFieldSimilarityWrapper {
Similarity delegate = new DefaultSimilarity();
- private boolean writeNorms;
- public MySimProvider(boolean writeNorms) {
- this.writeNorms = writeNorms;
- }
+
@Override
public float queryNorm(float sumOfSquaredWeights) {
@@ -221,7 +152,7 @@ public class TestNorms extends LuceneTes
@Override
public Similarity get(String field) {
if (byteTestField.equals(field)) {
- return new ByteEncodingBoostSimilarity(writeNorms);
+ return new ByteEncodingBoostSimilarity();
} else {
return delegate;
}
@@ -236,18 +167,10 @@ public class TestNorms extends LuceneTes
public static class ByteEncodingBoostSimilarity extends Similarity {
- private boolean writeNorms;
-
- public ByteEncodingBoostSimilarity(boolean writeNorms) {
- this.writeNorms = writeNorms;
- }
-
@Override
- public void computeNorm(FieldInvertState state, Norm norm) {
- if (writeNorms) {
- int boost = (int) state.getBoost();
- norm.setByte((byte) (0xFF & boost));
- }
+ public long computeNorm(FieldInvertState state) {
+ int boost = (int) state.getBoost();
+ return (0xFF & boost);
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java Thu Feb 7 20:48:21 2013
@@ -19,8 +19,6 @@ package org.apache.lucene.index;
import java.io.IOException;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
@@ -28,6 +26,8 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.TextField;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestOmitNorms extends LuceneTestCase {
// Tests whether the DocumentWriter correctly enable the
@@ -265,7 +265,7 @@ public class TestOmitNorms extends Lucen
* Indexes at least 1 document with f1, and at least 1 document with f2.
* returns the norms for "field".
*/
- byte[] getNorms(String field, Field f1, Field f2) throws IOException {
+ NumericDocValues getNorms(String field, Field f1, Field f2) throws IOException {
Directory dir = newDirectory();
IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy());
RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
@@ -290,16 +290,20 @@ public class TestOmitNorms extends Lucen
IndexReader ir1 = riw.getReader();
// todo: generalize
- DocValues dv1 = MultiDocValues.getNormDocValues(ir1, field);
- byte[] norms1 = dv1 == null ? null : (byte[]) dv1.getSource().getArray();
+ NumericDocValues norms1 = MultiDocValues.getNormValues(ir1, field);
// fully merge and validate MultiNorms against single segment.
riw.forceMerge(1);
DirectoryReader ir2 = riw.getReader();
- DocValues dv2 = getOnlySegmentReader(ir2).normValues(field);
- byte[] norms2 = dv2 == null ? null : (byte[]) dv2.getSource().getArray();
-
- assertArrayEquals(norms1, norms2);
+ NumericDocValues norms2 = getOnlySegmentReader(ir2).getNormValues(field);
+
+ if (norms1 == null) {
+ assertNull(norms2);
+ } else {
+ for(int docID=0;docID<ir1.maxDoc();docID++) {
+ assertEquals(norms1.get(docID), norms2.get(docID));
+ }
+ }
ir1.close();
ir2.close();
riw.close();
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java Thu Feb 7 20:48:21 2013
@@ -314,7 +314,7 @@ public class TestOmitTf extends LuceneTe
public final void collect(int doc) throws IOException {
//System.out.println("Q1: Doc=" + doc + " score=" + score);
float score = scorer.score();
- assertTrue(score==1.0f);
+ assertTrue("got score=" + score, score==1.0f);
super.collect(doc);
}
});
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java Thu Feb 7 20:48:21 2013
@@ -27,6 +27,7 @@ import org.apache.lucene.search.BooleanC
import org.apache.lucene.search.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
public class TestParallelAtomicReader extends LuceneTestCase {
@@ -262,6 +263,7 @@ public class TestParallelAtomicReader ex
ParallelAtomicReader pr = new ParallelAtomicReader(
SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1)),
SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2)));
+ _TestUtil.checkReader(pr);
return newSearcher(pr);
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java Thu Feb 7 20:48:21 2013
@@ -298,7 +298,7 @@ public class TestPostingsOffsets extends
DocsEnum docs = null;
DocsAndPositionsEnum docsAndPositions = null;
DocsAndPositionsEnum docsAndPositionsAndOffsets = null;
- final int docIDToID[] = FieldCache.DEFAULT.getInts(sub, "id", false);
+ final FieldCache.Ints docIDToID = FieldCache.DEFAULT.getInts(sub, "id", false);
for(String term : terms) {
//System.out.println(" term=" + term);
if (termsEnum.seekExact(new BytesRef(term), random().nextBoolean())) {
@@ -307,8 +307,8 @@ public class TestPostingsOffsets extends
int doc;
//System.out.println(" doc/freq");
while((doc = docs.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
- final List<Token> expected = actualTokens.get(term).get(docIDToID[doc]);
- //System.out.println(" doc=" + docIDToID[doc] + " docID=" + doc + " " + expected.size() + " freq");
+ final List<Token> expected = actualTokens.get(term).get(docIDToID.get(doc));
+ //System.out.println(" doc=" + docIDToID.get(doc) + " docID=" + doc + " " + expected.size() + " freq");
assertNotNull(expected);
assertEquals(expected.size(), docs.freq());
}
@@ -318,8 +318,8 @@ public class TestPostingsOffsets extends
assertNotNull(docsAndPositions);
//System.out.println(" doc/freq/pos");
while((doc = docsAndPositions.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
- final List<Token> expected = actualTokens.get(term).get(docIDToID[doc]);
- //System.out.println(" doc=" + docIDToID[doc] + " " + expected.size() + " freq");
+ final List<Token> expected = actualTokens.get(term).get(docIDToID.get(doc));
+ //System.out.println(" doc=" + docIDToID.get(doc) + " " + expected.size() + " freq");
assertNotNull(expected);
assertEquals(expected.size(), docsAndPositions.freq());
for(Token token : expected) {
@@ -333,8 +333,8 @@ public class TestPostingsOffsets extends
assertNotNull(docsAndPositionsAndOffsets);
//System.out.println(" doc/freq/pos/offs");
while((doc = docsAndPositionsAndOffsets.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
- final List<Token> expected = actualTokens.get(term).get(docIDToID[doc]);
- //System.out.println(" doc=" + docIDToID[doc] + " " + expected.size() + " freq");
+ final List<Token> expected = actualTokens.get(term).get(docIDToID.get(doc));
+ //System.out.println(" doc=" + docIDToID.get(doc) + " " + expected.size() + " freq");
assertNotNull(expected);
assertEquals(expected.size(), docsAndPositionsAndOffsets.freq());
for(Token token : expected) {
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java Thu Feb 7 20:48:21 2013
@@ -31,7 +31,6 @@ import org.apache.lucene.util.LuceneTest
import org.apache.lucene.util._TestUtil;
import org.apache.lucene.util.packed.PackedInts;
-
public class TestSegmentMerger extends LuceneTestCase {
//The variables for the new merged segment
private Directory mergedDir;
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java Thu Feb 7 20:48:21 2013
@@ -29,6 +29,7 @@ import org.apache.lucene.store.IOContext
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util._TestUtil;
+import org.junit.Assume;
public class TestSegmentReader extends LuceneTestCase {
private Directory dir;
@@ -173,15 +174,15 @@ public class TestSegmentReader extends L
}
public static void checkNorms(AtomicReader reader) throws IOException {
- // test omit norms
+ // test omit norms
for (int i=0; i<DocHelper.fields.length; i++) {
IndexableField f = DocHelper.fields[i];
if (f.fieldType().indexed()) {
- assertEquals(reader.normValues(f.name()) != null, !f.fieldType().omitNorms());
- assertEquals(reader.normValues(f.name()) != null, !DocHelper.noNorms.containsKey(f.name()));
- if (reader.normValues(f.name()) == null) {
+ assertEquals(reader.getNormValues(f.name()) != null, !f.fieldType().omitNorms());
+ assertEquals(reader.getNormValues(f.name()) != null, !DocHelper.noNorms.containsKey(f.name()));
+ if (reader.getNormValues(f.name()) == null) {
// test for norms of null
- DocValues norms = MultiDocValues.getNormDocValues(reader, f.name());
+ NumericDocValues norms = MultiDocValues.getNormValues(reader, f.name());
assertNull(norms);
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java Thu Feb 7 20:48:21 2013
@@ -225,7 +225,7 @@ public class TestTermsEnum extends Lucen
w.close();
// NOTE: intentional insanity!!
- final int[] docIDToID = FieldCache.DEFAULT.getInts(SlowCompositeReaderWrapper.wrap(r), "id", false);
+ final FieldCache.Ints docIDToID = FieldCache.DEFAULT.getInts(SlowCompositeReaderWrapper.wrap(r), "id", false);
for(int iter=0;iter<10*RANDOM_MULTIPLIER;iter++) {
@@ -335,7 +335,7 @@ public class TestTermsEnum extends Lucen
docsEnum = _TestUtil.docs(random(), te, null, docsEnum, DocsEnum.FLAG_NONE);
final int docID = docsEnum.nextDoc();
assertTrue(docID != DocIdSetIterator.NO_MORE_DOCS);
- assertEquals(docIDToID[docID], termToID.get(expected).intValue());
+ assertEquals(docIDToID.get(docID), termToID.get(expected).intValue());
do {
loc++;
} while (loc < termsArray.length && !acceptTermsSet.contains(termsArray[loc]));
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java Thu Feb 7 20:48:21 2013
@@ -27,7 +27,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.search.CollectionStatistics;
import org.apache.lucene.search.TermStatistics;
-import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
@@ -46,8 +45,9 @@ public class TestUniqueTermCount extends
public void setUp() throws Exception {
super.setUp();
dir = newDirectory();
- IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random(), MockTokenizer.SIMPLE, true)).setMergePolicy(newLogMergePolicy());
+ MockAnalyzer analyzer = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true);
+ IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer);
+ config.setMergePolicy(newLogMergePolicy());
config.setSimilarity(new TestSimilarity());
RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
Document doc = new Document();
@@ -69,9 +69,11 @@ public class TestUniqueTermCount extends
}
public void test() throws Exception {
- byte fooNorms[] = (byte[])MultiDocValues.getNormDocValues(reader, "foo").getSource().getArray();
- for (int i = 0; i < reader.maxDoc(); i++)
- assertEquals(expected.get(i).intValue(), fooNorms[i] & 0xff);
+ NumericDocValues fooNorms = MultiDocValues.getNormValues(reader, "foo");
+ assertNotNull(fooNorms);
+ for (int i = 0; i < reader.maxDoc(); i++) {
+ assertEquals(expected.get(i).longValue(), fooNorms.get(i));
+ }
}
/**
@@ -93,13 +95,13 @@ public class TestUniqueTermCount extends
}
/**
- * Simple similarity that encodes maxTermFrequency directly as a byte
+ * Simple similarity that encodes maxTermFrequency directly
*/
class TestSimilarity extends Similarity {
@Override
- public void computeNorm(FieldInvertState state, Norm norm) {
- norm.setByte((byte) state.getUniqueTermCount());
+ public long computeNorm(FieldInvertState state) {
+ return state.getUniqueTermCount();
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java Thu Feb 7 20:48:21 2013
@@ -22,6 +22,8 @@ import java.util.Comparator;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.SortedDocValues;
+import org.apache.lucene.index.SortedDocValuesTermsEnum;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.util.Bits;
@@ -88,9 +90,9 @@ public final class FieldCacheRewriteMeth
*/
@Override
public DocIdSet getDocIdSet(AtomicReaderContext context, final Bits acceptDocs) throws IOException {
- final FieldCache.DocTermsIndex fcsi = FieldCache.DEFAULT.getTermsIndex(context.reader(), query.field);
+ final SortedDocValues fcsi = FieldCache.DEFAULT.getTermsIndex(context.reader(), query.field);
// Cannot use FixedBitSet because we require long index (ord):
- final OpenBitSet termSet = new OpenBitSet(fcsi.numOrd());
+ final OpenBitSet termSet = new OpenBitSet(fcsi.getValueCount());
TermsEnum termsEnum = query.getTermsEnum(new Terms() {
@Override
@@ -100,7 +102,7 @@ public final class FieldCacheRewriteMeth
@Override
public TermsEnum iterator(TermsEnum reuse) {
- return fcsi.getTermsEnum();
+ return new SortedDocValuesTermsEnum(fcsi);
}
@Override
@@ -144,7 +146,7 @@ public final class FieldCacheRewriteMeth
// fill into a OpenBitSet
do {
long ord = termsEnum.ord();
- if (ord > 0) {
+ if (ord >= 0) {
termSet.set(ord);
}
} while (termsEnum.next() != null);
@@ -155,7 +157,11 @@ public final class FieldCacheRewriteMeth
return new FieldCacheDocIdSet(context.reader().maxDoc(), acceptDocs) {
@Override
protected final boolean matchDoc(int doc) throws ArrayIndexOutOfBoundsException {
- return termSet.get(fcsi.getOrd(doc));
+ int ord = fcsi.getOrd(doc);
+ if (ord == -1) {
+ return false;
+ }
+ return termSet.get(ord);
}
};
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java Thu Feb 7 20:48:21 2013
@@ -20,7 +20,6 @@ package org.apache.lucene.search;
import java.io.IOException;
import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.search.similarities.Similarity;
@@ -267,7 +266,7 @@ final class JustCompileSearch {
}
@Override
- public void computeNorm(FieldInvertState state, Norm norm) {
+ public long computeNorm(FieldInvertState state) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java Thu Feb 7 20:48:21 2013
@@ -18,11 +18,13 @@ package org.apache.lucene.search;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.lucene.analysis.MockAnalyzer;
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.SerialMergeScheduler;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.FixedBitSet;
@@ -160,7 +162,7 @@ public class TestBooleanOr extends Lucen
public void testBooleanScorerMax() throws IOException {
Directory dir = newDirectory();
- RandomIndexWriter riw = new RandomIndexWriter(random(), dir);
+ RandomIndexWriter riw = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
int docCount = atLeast(10000);
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestConjunctions.java Thu Feb 7 20:48:21 2013
@@ -29,7 +29,6 @@ import org.apache.lucene.index.AtomicRea
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.Similarity;
@@ -90,8 +89,8 @@ public class TestConjunctions extends Lu
private static class TFSimilarity extends Similarity {
@Override
- public void computeNorm(FieldInvertState state, Norm norm) {
- norm.setByte((byte)1); // we dont care
+ public long computeNorm(FieldInvertState state) {
+ return 1; // we dont care
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Thu Feb 7 20:48:21 2013
@@ -25,7 +25,6 @@ import org.apache.lucene.document.FieldT
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.RandomIndexWriter;
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java Thu Feb 7 20:48:21 2013
@@ -23,10 +23,8 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FloatDocValuesField;
import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.DocValues.Source;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper;
@@ -50,7 +48,7 @@ public class TestDocValuesScoring extend
Document doc = new Document();
Field field = newTextField("foo", "", Field.Store.NO);
doc.add(field);
- Field dvField = new FloatDocValuesField("foo_boost", 0.0f);
+ Field dvField = new FloatDocValuesField("foo_boost", 0.0F);
doc.add(dvField);
Field field2 = newTextField("bar", "", Field.Store.NO);
doc.add(field2);
@@ -67,10 +65,10 @@ public class TestDocValuesScoring extend
iw.close();
// no boosting
- IndexSearcher searcher1 = newSearcher(ir);
+ IndexSearcher searcher1 = newSearcher(ir, false);
final Similarity base = searcher1.getSimilarity();
// boosting
- IndexSearcher searcher2 = newSearcher(ir);
+ IndexSearcher searcher2 = newSearcher(ir, false);
searcher2.setSimilarity(new PerFieldSimilarityWrapper() {
final Similarity fooSim = new BoostingSimilarity(base, "foo_boost");
@@ -148,8 +146,8 @@ public class TestDocValuesScoring extend
}
@Override
- public void computeNorm(FieldInvertState state, Norm norm) {
- sim.computeNorm(state, norm);
+ public long computeNorm(FieldInvertState state) {
+ return sim.computeNorm(state);
}
@Override
@@ -160,17 +158,17 @@ public class TestDocValuesScoring extend
@Override
public ExactSimScorer exactSimScorer(SimWeight stats, AtomicReaderContext context) throws IOException {
final ExactSimScorer sub = sim.exactSimScorer(stats, context);
- final Source values = context.reader().docValues(boostField).getSource();
+ final FieldCache.Floats values = FieldCache.DEFAULT.getFloats(context.reader(), boostField, false);
return new ExactSimScorer() {
@Override
public float score(int doc, int freq) {
- return (float) values.getFloat(doc) * sub.score(doc, freq);
+ return values.get(doc) * sub.score(doc, freq);
}
@Override
public Explanation explain(int doc, Explanation freq) {
- Explanation boostExplanation = new Explanation((float) values.getFloat(doc), "indexDocValue(" + boostField + ")");
+ Explanation boostExplanation = new Explanation(values.get(doc), "indexDocValue(" + boostField + ")");
Explanation simExplanation = sub.explain(doc, freq);
Explanation expl = new Explanation(boostExplanation.getValue() * simExplanation.getValue(), "product of:");
expl.addDetail(boostExplanation);
@@ -183,12 +181,12 @@ public class TestDocValuesScoring extend
@Override
public SloppySimScorer sloppySimScorer(SimWeight stats, AtomicReaderContext context) throws IOException {
final SloppySimScorer sub = sim.sloppySimScorer(stats, context);
- final Source values = context.reader().docValues(boostField).getSource();
+ final FieldCache.Floats values = FieldCache.DEFAULT.getFloats(context.reader(), boostField, false);
return new SloppySimScorer() {
@Override
public float score(int doc, float freq) {
- return (float) values.getFloat(doc) * sub.score(doc, freq);
+ return values.get(doc) * sub.score(doc, freq);
}
@Override
@@ -203,7 +201,7 @@ public class TestDocValuesScoring extend
@Override
public Explanation explain(int doc, Explanation freq) {
- Explanation boostExplanation = new Explanation((float) values.getFloat(doc), "indexDocValue(" + boostField + ")");
+ Explanation boostExplanation = new Explanation(values.get(doc), "indexDocValue(" + boostField + ")");
Explanation simExplanation = sub.explain(doc, freq);
Explanation expl = new Explanation(boostExplanation.getValue() * simExplanation.getValue(), "product of:");
expl.addDetail(boostExplanation);
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java Thu Feb 7 20:48:21 2013
@@ -142,7 +142,7 @@ class ElevationComparatorSource extends
public FieldComparator<Integer> newComparator(final String fieldname, final int numHits, int sortPos, boolean reversed) throws IOException {
return new FieldComparator<Integer>() {
- FieldCache.DocTermsIndex idIndex;
+ SortedDocValues idIndex;
private final int[] values = new int[numHits];
private final BytesRef tempBR = new BytesRef();
int bottomVal;
@@ -159,11 +159,11 @@ class ElevationComparatorSource extends
private int docVal(int doc) {
int ord = idIndex.getOrd(doc);
- if (ord == 0) {
+ if (ord == -1) {
return 0;
} else {
- BytesRef id = idIndex.lookup(ord, tempBR);
- Integer prio = priority.get(id);
+ idIndex.lookupOrd(ord, tempBR);
+ Integer prio = priority.get(tempBR);
return prio == null ? 0 : prio.intValue();
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java Thu Feb 7 20:48:21 2013
@@ -32,6 +32,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.StringField;
import org.apache.lucene.index.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Bits;
@@ -129,58 +130,46 @@ public class TestFieldCache extends Luce
public void test() throws IOException {
FieldCache cache = FieldCache.DEFAULT;
- double [] doubles = cache.getDoubles(reader, "theDouble", random().nextBoolean());
+ FieldCache.Doubles doubles = cache.getDoubles(reader, "theDouble", random().nextBoolean());
assertSame("Second request to cache return same array", doubles, cache.getDoubles(reader, "theDouble", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", doubles, cache.getDoubles(reader, "theDouble", FieldCache.DEFAULT_DOUBLE_PARSER, random().nextBoolean()));
- assertTrue("doubles Size: " + doubles.length + " is not: " + NUM_DOCS, doubles.length == NUM_DOCS);
- for (int i = 0; i < doubles.length; i++) {
- assertTrue(doubles[i] + " does not equal: " + (Double.MAX_VALUE - i), doubles[i] == (Double.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(doubles.get(i) + " does not equal: " + (Double.MAX_VALUE - i), doubles.get(i) == (Double.MAX_VALUE - i));
}
- long [] longs = cache.getLongs(reader, "theLong", random().nextBoolean());
+ FieldCache.Longs longs = cache.getLongs(reader, "theLong", random().nextBoolean());
assertSame("Second request to cache return same array", longs, cache.getLongs(reader, "theLong", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", longs, cache.getLongs(reader, "theLong", FieldCache.DEFAULT_LONG_PARSER, random().nextBoolean()));
- assertTrue("longs Size: " + longs.length + " is not: " + NUM_DOCS, longs.length == NUM_DOCS);
- for (int i = 0; i < longs.length; i++) {
- assertTrue(longs[i] + " does not equal: " + (Long.MAX_VALUE - i) + " i=" + i, longs[i] == (Long.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(longs.get(i) + " does not equal: " + (Long.MAX_VALUE - i) + " i=" + i, longs.get(i) == (Long.MAX_VALUE - i));
}
- byte [] bytes = cache.getBytes(reader, "theByte", random().nextBoolean());
+ FieldCache.Bytes bytes = cache.getBytes(reader, "theByte", random().nextBoolean());
assertSame("Second request to cache return same array", bytes, cache.getBytes(reader, "theByte", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", bytes, cache.getBytes(reader, "theByte", FieldCache.DEFAULT_BYTE_PARSER, random().nextBoolean()));
- assertTrue("bytes Size: " + bytes.length + " is not: " + NUM_DOCS, bytes.length == NUM_DOCS);
- for (int i = 0; i < bytes.length; i++) {
- assertTrue(bytes[i] + " does not equal: " + (Byte.MAX_VALUE - i), bytes[i] == (byte) (Byte.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(bytes.get(i) + " does not equal: " + (Byte.MAX_VALUE - i), bytes.get(i) == (byte) (Byte.MAX_VALUE - i));
}
- short [] shorts = cache.getShorts(reader, "theShort", random().nextBoolean());
+ FieldCache.Shorts shorts = cache.getShorts(reader, "theShort", random().nextBoolean());
assertSame("Second request to cache return same array", shorts, cache.getShorts(reader, "theShort", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", shorts, cache.getShorts(reader, "theShort", FieldCache.DEFAULT_SHORT_PARSER, random().nextBoolean()));
- assertTrue("shorts Size: " + shorts.length + " is not: " + NUM_DOCS, shorts.length == NUM_DOCS);
- for (int i = 0; i < shorts.length; i++) {
- assertTrue(shorts[i] + " does not equal: " + (Short.MAX_VALUE - i), shorts[i] == (short) (Short.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(shorts.get(i) + " does not equal: " + (Short.MAX_VALUE - i), shorts.get(i) == (short) (Short.MAX_VALUE - i));
}
- int [] ints = cache.getInts(reader, "theInt", random().nextBoolean());
+ FieldCache.Ints ints = cache.getInts(reader, "theInt", random().nextBoolean());
assertSame("Second request to cache return same array", ints, cache.getInts(reader, "theInt", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", ints, cache.getInts(reader, "theInt", FieldCache.DEFAULT_INT_PARSER, random().nextBoolean()));
- assertTrue("ints Size: " + ints.length + " is not: " + NUM_DOCS, ints.length == NUM_DOCS);
- for (int i = 0; i < ints.length; i++) {
- assertTrue(ints[i] + " does not equal: " + (Integer.MAX_VALUE - i), ints[i] == (Integer.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(ints.get(i) + " does not equal: " + (Integer.MAX_VALUE - i), ints.get(i) == (Integer.MAX_VALUE - i));
}
- float [] floats = cache.getFloats(reader, "theFloat", random().nextBoolean());
+ FieldCache.Floats floats = cache.getFloats(reader, "theFloat", random().nextBoolean());
assertSame("Second request to cache return same array", floats, cache.getFloats(reader, "theFloat", random().nextBoolean()));
assertSame("Second request with explicit parser return same array", floats, cache.getFloats(reader, "theFloat", FieldCache.DEFAULT_FLOAT_PARSER, random().nextBoolean()));
- assertTrue("floats Size: " + floats.length + " is not: " + NUM_DOCS, floats.length == NUM_DOCS);
- for (int i = 0; i < floats.length; i++) {
- assertTrue(floats[i] + " does not equal: " + (Float.MAX_VALUE - i), floats[i] == (Float.MAX_VALUE - i));
-
+ for (int i = 0; i < NUM_DOCS; i++) {
+ assertTrue(floats.get(i) + " does not equal: " + (Float.MAX_VALUE - i), floats.get(i) == (Float.MAX_VALUE - i));
}
Bits docsWithField = cache.getDocsWithField(reader, "theLong");
@@ -200,46 +189,62 @@ public class TestFieldCache extends Luce
}
// getTermsIndex
- FieldCache.DocTermsIndex termsIndex = cache.getTermsIndex(reader, "theRandomUnicodeString");
+ SortedDocValues termsIndex = cache.getTermsIndex(reader, "theRandomUnicodeString");
assertSame("Second request to cache return same array", termsIndex, cache.getTermsIndex(reader, "theRandomUnicodeString"));
- assertTrue("doubles Size: " + termsIndex.size() + " is not: " + NUM_DOCS, termsIndex.size() == NUM_DOCS);
final BytesRef br = new BytesRef();
for (int i = 0; i < NUM_DOCS; i++) {
- final BytesRef term = termsIndex.getTerm(i, br);
+ final BytesRef term;
+ final int ord = termsIndex.getOrd(i);
+ if (ord == -1) {
+ term = null;
+ } else {
+ termsIndex.lookupOrd(ord, br);
+ term = br;
+ }
final String s = term == null ? null : term.utf8ToString();
assertTrue("for doc " + i + ": " + s + " does not equal: " + unicodeStrings[i], unicodeStrings[i] == null || unicodeStrings[i].equals(s));
}
- int nTerms = termsIndex.numOrd();
- // System.out.println("nTerms="+nTerms);
+ int nTerms = termsIndex.getValueCount();
- TermsEnum tenum = termsIndex.getTermsEnum();
+ TermsEnum tenum = new SortedDocValuesTermsEnum(termsIndex);
BytesRef val = new BytesRef();
- for (int i=1; i<nTerms; i++) {
+ for (int i=0; i<nTerms; i++) {
BytesRef val1 = tenum.next();
- BytesRef val2 = termsIndex.lookup(i,val);
+ termsIndex.lookupOrd(i, val);
// System.out.println("i="+i);
- assertEquals(val2, val1);
+ assertEquals(val, val1);
}
// seek the enum around (note this isn't a great test here)
int num = atLeast(100);
for (int i = 0; i < num; i++) {
- int k = _TestUtil.nextInt(random(), 1, nTerms-1);
- BytesRef val1 = termsIndex.lookup(k, val);
- assertEquals(TermsEnum.SeekStatus.FOUND, tenum.seekCeil(val1));
- assertEquals(val1, tenum.term());
+ int k = random().nextInt(nTerms);
+ termsIndex.lookupOrd(k, val);
+ assertEquals(TermsEnum.SeekStatus.FOUND, tenum.seekCeil(val));
+ assertEquals(val, tenum.term());
}
-
+
+ for(int i=0;i<nTerms;i++) {
+ termsIndex.lookupOrd(i, val);
+ assertEquals(TermsEnum.SeekStatus.FOUND, tenum.seekCeil(val));
+ assertEquals(val, tenum.term());
+ }
+
// test bad field
termsIndex = cache.getTermsIndex(reader, "bogusfield");
// getTerms
- FieldCache.DocTerms terms = cache.getTerms(reader, "theRandomUnicodeString");
+ BinaryDocValues terms = cache.getTerms(reader, "theRandomUnicodeString");
assertSame("Second request to cache return same array", terms, cache.getTerms(reader, "theRandomUnicodeString"));
- assertTrue("doubles Size: " + terms.size() + " is not: " + NUM_DOCS, terms.size() == NUM_DOCS);
for (int i = 0; i < NUM_DOCS; i++) {
- final BytesRef term = terms.getTerm(i, br);
+ terms.get(i, br);
+ final BytesRef term;
+ if (br.bytes == BinaryDocValues.MISSING) {
+ term = null;
+ } else {
+ term = br;
+ }
final String s = term == null ? null : term.utf8ToString();
assertTrue("for doc " + i + ": " + s + " does not equal: " + unicodeStrings[i], unicodeStrings[i] == null || unicodeStrings[i].equals(s));
}
@@ -324,7 +329,7 @@ public class TestFieldCache extends Luce
FieldCache cache = FieldCache.DEFAULT;
cache.purgeAllCaches();
assertEquals(0, cache.getCacheEntries().length);
- double[] doubles = cache.getDoubles(reader, "theDouble", true);
+ cache.getDoubles(reader, "theDouble", true);
// The double[] takes two slots (one w/ null parser, one
// w/ real parser), and docsWithField should also
@@ -336,25 +341,25 @@ public class TestFieldCache extends Luce
assertEquals(3, cache.getCacheEntries().length);
assertTrue(bits instanceof Bits.MatchAllBits);
- int[] ints = cache.getInts(reader, "sparse", true);
+ FieldCache.Ints ints = cache.getInts(reader, "sparse", true);
assertEquals(6, cache.getCacheEntries().length);
Bits docsWithField = cache.getDocsWithField(reader, "sparse");
assertEquals(6, cache.getCacheEntries().length);
for (int i = 0; i < docsWithField.length(); i++) {
if (i%2 == 0) {
assertTrue(docsWithField.get(i));
- assertEquals(i, ints[i]);
+ assertEquals(i, ints.get(i));
} else {
assertFalse(docsWithField.get(i));
}
}
- int[] numInts = cache.getInts(reader, "numInt", random().nextBoolean());
+ FieldCache.Ints numInts = cache.getInts(reader, "numInt", random().nextBoolean());
docsWithField = cache.getDocsWithField(reader, "numInt");
for (int i = 0; i < docsWithField.length(); i++) {
if (i%2 == 0) {
assertTrue(docsWithField.get(i));
- assertEquals(i, numInts[i]);
+ assertEquals(i, numInts.get(i));
} else {
assertFalse(docsWithField.get(i));
}
@@ -399,12 +404,12 @@ public class TestFieldCache extends Luce
assertEquals(i%2 == 0, docsWithField.get(i));
}
} else {
- int[] ints = cache.getInts(reader, "sparse", true);
+ FieldCache.Ints ints = cache.getInts(reader, "sparse", true);
Bits docsWithField = cache.getDocsWithField(reader, "sparse");
for (int i = 0; i < docsWithField.length(); i++) {
if (i%2 == 0) {
assertTrue(docsWithField.get(i));
- assertEquals(i, ints[i]);
+ assertEquals(i, ints.get(i));
} else {
assertFalse(docsWithField.get(i));
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java Thu Feb 7 20:48:21 2013
@@ -19,16 +19,16 @@ package org.apache.lucene.search;
import java.util.Arrays;
+import org.apache.lucene.document.BinaryDocValuesField;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FloatDocValuesField;
import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntDocValuesField;
import org.apache.lucene.document.IntField;
import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.SortedBytesDocValuesField;
-import org.apache.lucene.document.StraightBytesDocValuesField;
+import org.apache.lucene.document.NumericDocValuesField;
+import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
@@ -41,17 +41,11 @@ import org.apache.lucene.util._TestUtil;
/**
* Tests IndexSearcher's searchAfter() method
*/
-
public class TestSearchAfter extends LuceneTestCase {
private Directory dir;
private IndexReader reader;
private IndexSearcher searcher;
- private static SortField useDocValues(SortField field) {
- field.setUseIndexValues(true);
- return field;
- }
-
@Override
public void setUp() throws Exception {
super.setUp();
@@ -73,11 +67,11 @@ public class TestSearchAfter extends Luc
document.add(newStringField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), Field.Store.NO));
document.add(new DoubleField("double", random().nextDouble(), Field.Store.NO));
- document.add(new IntDocValuesField("intdocvalues", random().nextInt()));
+ document.add(new NumericDocValuesField("intdocvalues", random().nextInt()));
document.add(new FloatDocValuesField("floatdocvalues", random().nextFloat()));
- document.add(new SortedBytesDocValuesField("sortedbytesdocvalues", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
- document.add(new SortedBytesDocValuesField("sortedbytesdocvaluesval", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
- document.add(new StraightBytesDocValuesField("straightbytesdocvalues", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
+ document.add(new SortedDocValuesField("sortedbytesdocvalues", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
+ document.add(new SortedDocValuesField("sortedbytesdocvaluesval", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
+ document.add(new BinaryDocValuesField("straightbytesdocvalues", new BytesRef(_TestUtil.randomRealisticUnicodeString(random()))));
iw.addDocument(document);
}
@@ -125,11 +119,11 @@ public class TestSearchAfter extends Luc
assertQuery(query, filter, new Sort(new SortField[] {new SortField("double", SortField.Type.DOUBLE, reversed)}));
assertQuery(query, filter, new Sort(new SortField[] {new SortField("bytes", SortField.Type.STRING, reversed)}));
assertQuery(query, filter, new Sort(new SortField[] {new SortField("bytesval", SortField.Type.STRING_VAL, reversed)}));
- assertQuery(query, filter, new Sort(new SortField[] {useDocValues(new SortField("intdocvalues", SortField.Type.INT, reversed))}));
- assertQuery(query, filter, new Sort(new SortField[] {useDocValues(new SortField("floatdocvalues", SortField.Type.FLOAT, reversed))}));
- assertQuery(query, filter, new Sort(new SortField[] {useDocValues(new SortField("sortedbytesdocvalues", SortField.Type.STRING, reversed))}));
- assertQuery(query, filter, new Sort(new SortField[] {useDocValues(new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, reversed))}));
- assertQuery(query, filter, new Sort(new SortField[] {useDocValues(new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, reversed))}));
+ assertQuery(query, filter, new Sort(new SortField[] {new SortField("intdocvalues", SortField.Type.INT, reversed)}));
+ assertQuery(query, filter, new Sort(new SortField[] {new SortField("floatdocvalues", SortField.Type.FLOAT, reversed)}));
+ assertQuery(query, filter, new Sort(new SortField[] {new SortField("sortedbytesdocvalues", SortField.Type.STRING, reversed)}));
+ assertQuery(query, filter, new Sort(new SortField[] {new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, reversed)}));
+ assertQuery(query, filter, new Sort(new SortField[] {new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, reversed)}));
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java Thu Feb 7 20:48:21 2013
@@ -25,7 +25,6 @@ import java.io.IOException;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.DefaultSimilarity;
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java?rev=1443717&r1=1443716&r2=1443717&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java Thu Feb 7 20:48:21 2013
@@ -24,7 +24,7 @@ import org.apache.lucene.index.AtomicRea
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Norm;
+import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.Term;
@@ -77,10 +77,10 @@ public class TestSimilarityProvider exte
// sanity check of norms writer
// TODO: generalize
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]);
+ NumericDocValues fooNorms = slow.getNormValues("foo");
+ NumericDocValues barNorms = slow.getNormValues("bar");
+ for (int i = 0; i < slow.maxDoc(); i++) {
+ assertFalse(fooNorms.get(i) == barNorms.get(i));
}
// sanity check of searching