You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/11/27 12:34:48 UTC
svn commit: r1642110 [4/12] - in /lucene/dev/branches/lucene6005/lucene:
analysis/uima/src/test/org/apache/lucene/analysis/uima/
backward-codecs/src/test/org/apache/lucene/index/
benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ benchmark/sr...
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java Thu Nov 27 11:34:43 2014
@@ -19,9 +19,11 @@ package org.apache.lucene.index;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.TextField;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
@@ -39,11 +41,12 @@ public class TestOmitPositions extends L
public void testBasic() throws Exception {
Directory dir = newDirectory();
RandomIndexWriter w = new RandomIndexWriter(random(), dir);
- Document doc = new Document();
- FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
- ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
- Field f = newField("foo", "this is a test test", ft);
- doc.add(f);
+ FieldTypes fieldTypes = w.getFieldTypes();
+ fieldTypes.disableHighlighting("foo");
+ fieldTypes.setIndexOptions("foo", IndexOptions.DOCS_AND_FREQS);
+
+ Document2 doc = w.newDocument();
+ doc.addLargeText("foo", "this is a test test");
for (int i = 0; i < 100; i++) {
w.addDocument(doc);
}
@@ -61,210 +64,4 @@ public class TestOmitPositions extends L
reader.close();
dir.close();
}
-
- // Tests whether the DocumentWriter correctly enable the
- // omitTermFreqAndPositions bit in the FieldInfo
- public void testPositions() throws Exception {
- Directory ram = newDirectory();
- Analyzer analyzer = new MockAnalyzer(random());
- IndexWriter writer = new IndexWriter(ram, newIndexWriterConfig(analyzer));
- Document d = new Document();
-
- // f1,f2,f3: docs only
- FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
- ft.setIndexOptions(IndexOptions.DOCS);
-
- Field f1 = newField("f1", "This field has docs only", ft);
- d.add(f1);
-
- Field f2 = newField("f2", "This field has docs only", ft);
- d.add(f2);
-
- Field f3 = newField("f3", "This field has docs only", ft);
- d.add(f3);
-
- FieldType ft2 = new FieldType(TextField.TYPE_NOT_STORED);
- ft2.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
-
- // f4,f5,f6 docs and freqs
- Field f4 = newField("f4", "This field has docs and freqs", ft2);
- d.add(f4);
-
- Field f5 = newField("f5", "This field has docs and freqs", ft2);
- d.add(f5);
-
- Field f6 = newField("f6", "This field has docs and freqs", ft2);
- d.add(f6);
-
- FieldType ft3 = new FieldType(TextField.TYPE_NOT_STORED);
- ft3.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
-
- // f7,f8,f9 docs/freqs/positions
- Field f7 = newField("f7", "This field has docs and freqs and positions", ft3);
- d.add(f7);
-
- Field f8 = newField("f8", "This field has docs and freqs and positions", ft3);
- d.add(f8);
-
- Field f9 = newField("f9", "This field has docs and freqs and positions", ft3);
- d.add(f9);
-
- writer.addDocument(d);
- writer.forceMerge(1);
-
- // now we add another document which has docs-only for f1, f4, f7, docs/freqs for f2, f5, f8,
- // and docs/freqs/positions for f3, f6, f9
- d = new Document();
-
- // f1,f4,f7: docs only
- f1 = newField("f1", "This field has docs only", ft);
- d.add(f1);
-
- f4 = newField("f4", "This field has docs only", ft);
- d.add(f4);
-
- f7 = newField("f7", "This field has docs only", ft);
- d.add(f7);
-
- // f2, f5, f8: docs and freqs
- f2 = newField("f2", "This field has docs and freqs", ft2);
- d.add(f2);
-
- f5 = newField("f5", "This field has docs and freqs", ft2);
- d.add(f5);
-
- f8 = newField("f8", "This field has docs and freqs", ft2);
- d.add(f8);
-
- // f3, f6, f9: docs and freqs and positions
- f3 = newField("f3", "This field has docs and freqs and positions", ft3);
- d.add(f3);
-
- f6 = newField("f6", "This field has docs and freqs and positions", ft3);
- d.add(f6);
-
- f9 = newField("f9", "This field has docs and freqs and positions", ft3);
- d.add(f9);
-
- writer.addDocument(d);
-
- // force merge
- writer.forceMerge(1);
- // flush
- writer.close();
-
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
- FieldInfos fi = reader.getFieldInfos();
- // docs + docs = docs
- assertEquals(IndexOptions.DOCS, fi.fieldInfo("f1").getIndexOptions());
- // docs + docs/freqs = docs
- assertEquals(IndexOptions.DOCS, fi.fieldInfo("f2").getIndexOptions());
- // docs + docs/freqs/pos = docs
- assertEquals(IndexOptions.DOCS, fi.fieldInfo("f3").getIndexOptions());
- // docs/freqs + docs = docs
- assertEquals(IndexOptions.DOCS, fi.fieldInfo("f4").getIndexOptions());
- // docs/freqs + docs/freqs = docs/freqs
- assertEquals(IndexOptions.DOCS_AND_FREQS, fi.fieldInfo("f5").getIndexOptions());
- // docs/freqs + docs/freqs/pos = docs/freqs
- assertEquals(IndexOptions.DOCS_AND_FREQS, fi.fieldInfo("f6").getIndexOptions());
- // docs/freqs/pos + docs = docs
- assertEquals(IndexOptions.DOCS, fi.fieldInfo("f7").getIndexOptions());
- // docs/freqs/pos + docs/freqs = docs/freqs
- assertEquals(IndexOptions.DOCS_AND_FREQS, fi.fieldInfo("f8").getIndexOptions());
- // docs/freqs/pos + docs/freqs/pos = docs/freqs/pos
- assertEquals(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, fi.fieldInfo("f9").getIndexOptions());
-
- reader.close();
- ram.close();
- }
-
- private void assertNoPrx(Directory dir) throws Throwable {
- final String[] files = dir.listAll();
- for(int i=0;i<files.length;i++) {
- assertFalse(files[i].endsWith(".prx"));
- assertFalse(files[i].endsWith(".pos"));
- }
- }
-
- // Verifies no *.prx exists when all fields omit term positions:
- public void testNoPrxFile() throws Throwable {
- Directory ram = newDirectory();
- if (ram instanceof MockDirectoryWrapper) {
- // we verify some files get deleted
- ((MockDirectoryWrapper)ram).setEnableVirusScanner(false);
- }
- Analyzer analyzer = new MockAnalyzer(random());
- IndexWriter writer = new IndexWriter(ram, newIndexWriterConfig(analyzer)
- .setMaxBufferedDocs(3)
- .setMergePolicy(newLogMergePolicy()));
- LogMergePolicy lmp = (LogMergePolicy) writer.getConfig().getMergePolicy();
- lmp.setMergeFactor(2);
- lmp.setNoCFSRatio(0.0);
- Document d = new Document();
-
- FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
- ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
- Field f1 = newField("f1", "This field has term freqs", ft);
- d.add(f1);
-
- for(int i=0;i<30;i++)
- writer.addDocument(d);
-
- writer.commit();
-
- assertNoPrx(ram);
-
- // now add some documents with positions, and check there is no prox after optimization
- d = new Document();
- f1 = newTextField("f1", "This field has positions", Field.Store.NO);
- d.add(f1);
-
- for(int i=0;i<30;i++)
- writer.addDocument(d);
-
- // force merge
- writer.forceMerge(1);
- // flush
- writer.close();
-
- assertNoPrx(ram);
- ram.close();
- }
-
- /** make sure we downgrade positions and payloads correctly */
- public void testMixing() throws Exception {
- // no positions
- FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
- ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
-
- Directory dir = newDirectory();
- RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
-
- for (int i = 0; i < 20; i++) {
- Document doc = new Document();
- if (i < 19 && random().nextBoolean()) {
- for (int j = 0; j < 50; j++) {
- doc.add(new TextField("foo", "i have positions", Field.Store.NO));
- }
- } else {
- for (int j = 0; j < 50; j++) {
- doc.add(new Field("foo", "i have no positions", ft));
- }
- }
- iw.addDocument(doc);
- iw.commit();
- }
-
- if (random().nextBoolean()) {
- iw.forceMerge(1);
- }
-
- DirectoryReader ir = iw.getReader();
- FieldInfos fis = MultiFields.getMergedFieldInfos(ir);
- assertEquals(IndexOptions.DOCS_AND_FREQS, fis.fieldInfo("foo").getIndexOptions());
- assertFalse(fis.fieldInfo("foo").hasPayloads());
- iw.close();
- ir.close();
- dir.close(); // checkindex
- }
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java Thu Nov 27 11:34:43 2014
@@ -32,6 +32,7 @@ import org.apache.lucene.analysis.tokena
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.DocIdSetIterator;
@@ -62,7 +63,11 @@ public class TestPayloads extends Lucene
Directory ram = newDirectory();
PayloadAnalyzer analyzer = new PayloadAnalyzer();
IndexWriter writer = new IndexWriter(ram, newIndexWriterConfig(analyzer));
+ FieldTypes fieldTypes = writer.getFieldTypes();
+ fieldTypes.setMultiValued("f2");
+
Document2 d = writer.newDocument();
+
// this field won't have any payloads
d.addLargeText("f1", "This field has no payloads");
// this field will have payloads in all docs, however not for all term positions,
@@ -91,6 +96,8 @@ public class TestPayloads extends Lucene
analyzer = new PayloadAnalyzer(); // Clear payload state for each field
writer = new IndexWriter(ram, newIndexWriterConfig(analyzer)
.setOpenMode(OpenMode.CREATE));
+ fieldTypes = writer.getFieldTypes();
+ fieldTypes.setMultiValued("f2");
d = writer.newDocument();
d.addLargeText("f1", "This field has no payloads");
d.addLargeText("f2", "This field has payloads in all docs");
@@ -607,6 +614,8 @@ public class TestPayloads extends Lucene
public void testMixupMultiValued() throws Exception {
Directory dir = newDirectory();
RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
+ FieldTypes fieldTypes = writer.getFieldTypes();
+ fieldTypes.setMultiValued("field");
Document2 doc = writer.newDocument();
TokenStream ts = new MockTokenizer(MockTokenizer.WHITESPACE, true);
((Tokenizer)ts).setReader(new StringReader("here we go"));
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java Thu Nov 27 11:34:43 2014
@@ -99,6 +99,7 @@ public class TestPayloadsOnVectors exten
if (random().nextBoolean()) {
fieldTypes.enableTermVectorOffsets("field");
}
+ fieldTypes.setMultiValued("field");
TokenStream ts = new MockTokenizer(MockTokenizer.WHITESPACE, true);
((Tokenizer)ts).setReader(new StringReader("here we go"));
Document2 doc = writer.newDocument();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java Thu Nov 27 11:34:43 2014
@@ -35,7 +35,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.FieldTypes;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
@@ -375,6 +374,7 @@ public class TestPostingsOffsets extends
fieldTypes.enableTermVectors("content3");
fieldTypes.enableTermVectorPositions("content3");
fieldTypes.enableTermVectorOffsets("content3");
+ fieldTypes.setMultiValued("content3");
Document2 doc = iw.newDocument();
doc.addLargeText("content3", "here is more content with aaa aaa aaa");
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java Thu Nov 27 11:34:43 2014
@@ -44,8 +44,6 @@ public class TestRollingUpdates extends
((MockDirectoryWrapper)dir).setEnableVirusScanner(false);
}
- final LineFileDocs docs = new LineFileDocs(random, true);
-
//provider.register(new MemoryCodec());
if (random().nextBoolean()) {
Codec.setDefault(TestUtil.alwaysPostingsFormat(new MemoryPostingsFormat(random().nextBoolean(), random.nextFloat())));
@@ -66,7 +64,7 @@ public class TestRollingUpdates extends
int updateCount = 0;
// TODO: sometimes update ids not in order...
for(int docIter=0;docIter<numUpdates;docIter++) {
- final Document doc = docs.nextDoc();
+ final Document2 doc = w.newDocument();
final String myID = Integer.toString(id);
if (id == SIZE-1) {
id = 0;
@@ -76,7 +74,7 @@ public class TestRollingUpdates extends
if (VERBOSE) {
System.out.println(" docIter=" + docIter + " id=" + id);
}
- ((Field) doc.getField("docid")).setStringValue(myID);
+ doc.addAtom("docid", myID);
Term idTerm = new Term("docid", myID);
@@ -140,8 +138,6 @@ public class TestRollingUpdates extends
TestIndexWriter.assertNoUnreferencedFiles(dir, "leftover files after rolling updates");
- docs.close();
-
// LUCENE-4455:
SegmentInfos infos = SegmentInfos.readLatestCommit(dir);
long totalBytes = 0;
@@ -162,10 +158,10 @@ public class TestRollingUpdates extends
public void testUpdateSameDoc() throws Exception {
final Directory dir = newDirectory();
- final LineFileDocs docs = new LineFileDocs(random());
for (int r = 0; r < 3; r++) {
final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random()))
.setMaxBufferedDocs(2));
+ final LineFileDocs docs = new LineFileDocs(w, random());
final int numUpdates = atLeast(20);
int numThreads = TestUtil.nextInt(random(), 2, 6);
IndexingThread[] threads = new IndexingThread[numThreads];
@@ -179,12 +175,12 @@ public class TestRollingUpdates extends
}
w.close();
+ docs.close();
}
IndexReader open = DirectoryReader.open(dir);
assertEquals(1, open.numDocs());
open.close();
- docs.close();
dir.close();
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Thu Nov 27 11:34:43 2014
@@ -31,6 +31,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.LowSchemaField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.DocIdSetIterator;
@@ -75,7 +76,7 @@ public class TestStressIndexing2 extends
// mergeFactor=2; maxBufferedDocs=2; Map docs = indexRandom(1, 3, 2, dir1);
int maxThreadStates = 1+random().nextInt(10);
boolean doReaderPooling = random().nextBoolean();
- Map<String,Document> docs = indexRandom(5, 3, 100, dir1, maxThreadStates, doReaderPooling);
+ Map<String,List<LowSchemaField>> docs = indexRandom(5, 3, 100, dir1, maxThreadStates, doReaderPooling);
indexSerial(random(), docs, dir2);
// verifying verify
@@ -110,7 +111,7 @@ public class TestStressIndexing2 extends
if (VERBOSE) {
System.out.println(" nThreads=" + nThreads + " iter=" + iter + " range=" + range + " doPooling=" + doReaderPooling + " maxThreadStates=" + maxThreadStates + " sameFieldOrder=" + sameFieldOrder + " mergeFactor=" + mergeFactor + " maxBufferedDocs=" + maxBufferedDocs);
}
- Map<String,Document> docs = indexRandom(nThreads, iter, range, dir1, maxThreadStates, doReaderPooling);
+ Map<String,List<LowSchemaField>> docs = indexRandom(nThreads, iter, range, dir1, maxThreadStates, doReaderPooling);
if (VERBOSE) {
System.out.println("TEST: index serial");
}
@@ -139,12 +140,12 @@ public class TestStressIndexing2 extends
// everything.
public static class DocsAndWriter {
- Map<String,Document> docs;
+ Map<String,List<LowSchemaField>> docs;
IndexWriter writer;
}
public DocsAndWriter indexRandomIWReader(int nThreads, int iterations, int range, Directory dir) throws IOException, InterruptedException {
- Map<String,Document> docs = new HashMap<>();
+ Map<String,List<LowSchemaField>> docs = new HashMap<>();
IndexWriter w = RandomIndexWriter.mockIndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random()))
.setOpenMode(OpenMode.CREATE)
.setRAMBufferSizeMB(0.1)
@@ -195,9 +196,9 @@ public class TestStressIndexing2 extends
return dw;
}
- public Map<String,Document> indexRandom(int nThreads, int iterations, int range, Directory dir, int maxThreadStates,
- boolean doReaderPooling) throws IOException, InterruptedException {
- Map<String,Document> docs = new HashMap<>();
+ public Map<String,List<LowSchemaField>> indexRandom(int nThreads, int iterations, int range, Directory dir, int maxThreadStates,
+ boolean doReaderPooling) throws IOException, InterruptedException {
+ Map<String,List<LowSchemaField>> docs = new HashMap<>();
IndexWriter w = RandomIndexWriter.mockIndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random()))
.setOpenMode(OpenMode.CREATE)
.setRAMBufferSizeMB(0.1)
@@ -243,23 +244,17 @@ public class TestStressIndexing2 extends
}
- public static void indexSerial(Random random, Map<String,Document> docs, Directory dir) throws IOException {
+ public static void indexSerial(Random random, Map<String,List<LowSchemaField>> docs, Directory dir) throws IOException {
IndexWriter w = new IndexWriter(dir, LuceneTestCase.newIndexWriterConfig(random, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
// index all docs in a single thread
- Iterator<Document> iter = docs.values().iterator();
+ Iterator<List<LowSchemaField>> iter = docs.values().iterator();
while (iter.hasNext()) {
- Document d = iter.next();
- ArrayList<IndexableField> fields = new ArrayList<>();
- fields.addAll(d.getFields());
+ List<LowSchemaField> d = iter.next();
+ List<LowSchemaField> fields = new ArrayList<>(d);
// put fields in same order each time
Collections.sort(fields, fieldNameComparator);
-
- Document d1 = new Document();
- for (int i=0; i<fields.size(); i++) {
- d1.add(fields.get(i));
- }
- w.addDocument(d1);
+ w.addDocument(fields);
// System.out.println("indexing "+d1);
}
@@ -694,7 +689,7 @@ public class TestStressIndexing2 extends
int base;
int range;
int iterations;
- Map<String,Document> docs = new HashMap<>();
+ Map<String,List<LowSchemaField>> docs = new HashMap<>();
Random r;
public int nextInt(int lim) {
@@ -765,19 +760,40 @@ public class TestStressIndexing2 extends
return Integer.toString(base + nextInt(range));
}
+ private void setTermVectors(LowSchemaField field, Map<String,LowSchemaField> prevFields) {
+ LowSchemaField prev = prevFields.get(field.name());
+ if (prev == null) {
+ // First time we see this field name in in this doc: randomize TV settings:
+ switch (nextInt(4)) {
+ case 0:
+ break;
+ case 1:
+ field.enableTermVectors(false, false, false);
+ break;
+ case 2:
+ field.enableTermVectors(true, false, false);
+ break;
+ case 3:
+ field.enableTermVectors(false, true, false);
+ break;
+ }
+ prevFields.put(field.name(), field);
+ } else {
+ field.enableTermVectors(prev.storeTermVectorPositions(),
+ prev.storeTermVectorOffsets(),
+ prev.storeTermVectorPayloads());
+ }
+ }
+
public void indexDoc() throws IOException {
- Document d = new Document();
- FieldType customType1 = new FieldType(TextField.TYPE_STORED);
- customType1.setTokenized(false);
- customType1.setOmitNorms(true);
-
- ArrayList<Field> fields = new ArrayList<>();
+ List<LowSchemaField> fields = new ArrayList<>();
String idString = getIdString();
- Field idField = newField("id", idString, customType1);
+ LowSchemaField idField = new LowSchemaField("id", idString, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, false);
+ idField.disableNorms();
fields.add(idField);
- Map<String,FieldType> tvTypes = new HashMap<>();
+ Map<String,LowSchemaField> prevField = new HashMap<>();
int nFields = nextInt(maxFields);
for (int i=0; i<nFields; i++) {
@@ -785,61 +801,26 @@ public class TestStressIndexing2 extends
String fieldName = "f" + nextInt(100);
FieldType customType;
- // Use the same term vector settings if we already
- // added this field to the doc:
- FieldType oldTVType = tvTypes.get(fieldName);
- if (oldTVType != null) {
- customType = new FieldType(oldTVType);
- } else {
- customType = new FieldType();
- switch (nextInt(4)) {
- case 0:
- break;
- case 1:
- customType.setStoreTermVectors(true);
- break;
- case 2:
- customType.setStoreTermVectors(true);
- customType.setStoreTermVectorPositions(true);
- break;
- case 3:
- customType.setStoreTermVectors(true);
- customType.setStoreTermVectorOffsets(true);
- break;
- }
- FieldType newType = new FieldType(customType);
- newType.freeze();
- tvTypes.put(fieldName, newType);
- }
+ LowSchemaField field;
switch (nextInt(4)) {
case 0:
- customType.setStored(true);
- customType.setOmitNorms(true);
- customType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
- customType.freeze();
- fields.add(newField(fieldName, getString(1), customType));
+ field = new LowSchemaField(fieldName, getString(1), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, true);
+ field.disableNorms();
+ setTermVectors(field, prevField);
break;
case 1:
- customType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
- customType.setTokenized(true);
- customType.freeze();
- fields.add(newField(fieldName, getString(0), customType));
+ field = new LowSchemaField(fieldName, getString(0), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, true);
+ field.doNotStore();
+ setTermVectors(field, prevField);
break;
case 2:
- customType.setStored(true);
- customType.setStoreTermVectors(false);
- customType.setStoreTermVectorOffsets(false);
- customType.setStoreTermVectorPositions(false);
- customType.freeze();
- fields.add(newField(fieldName, getString(0), customType));
+ field = new LowSchemaField(fieldName, getString(0), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, true);
+ // no term vectors
break;
case 3:
- customType.setStored(true);
- customType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
- customType.setTokenized(true);
- customType.freeze();
- fields.add(newField(fieldName, getString(bigFieldSize), customType));
+ field = new LowSchemaField(fieldName, getString(0), IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, true);
+ setTermVectors(field, prevField);
break;
}
}
@@ -848,18 +829,15 @@ public class TestStressIndexing2 extends
Collections.sort(fields, fieldNameComparator);
} else {
// random placement of id field also
- Collections.swap(fields,nextInt(fields.size()), 0);
+ Collections.swap(fields, nextInt(fields.size()), 0);
}
- for (int i=0; i<fields.size(); i++) {
- d.add(fields.get(i));
- }
if (VERBOSE) {
System.out.println(Thread.currentThread().getName() + ": indexing id:" + idString);
}
- w.updateDocument(new Term("id", idString), d);
+ w.updateDocument(new Term("id", idString), fields);
//System.out.println(Thread.currentThread().getName() + ": indexing "+d);
- docs.put(idString, d);
+ docs.put(idString, fields);
}
public void deleteDoc() throws IOException {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java Thu Nov 27 11:34:43 2014
@@ -56,6 +56,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addAtom("field", "abcd");
doc.addAtom("field", "abcd");
@@ -113,6 +114,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addLargeText("field", "abcd");
doc.addLargeText("field", "abcd");
@@ -147,6 +149,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addLargeText("field", "abcd ");
doc.addLargeText("field", "abcd ");
@@ -182,6 +185,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
try (TokenStream stream = analyzer.tokenStream("field", "abcd ")) {
stream.reset(); // TODO: weird to reset before wrapping with CachingTokenFilter... correct?
@@ -220,6 +224,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addLargeText("field", "abcd the");
doc.addLargeText("field", "abcd the");
@@ -254,6 +259,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addLargeText("field", "abcd the ");
doc.addLargeText("field", "crunch man");
@@ -297,6 +303,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
doc.addLargeText("field", "");
doc.addLargeText("field", "crunch man");
w.addDocument(doc);
@@ -333,6 +340,7 @@ public class TestTermVectorsWriter exten
fieldTypes.enableTermVectors("field");
fieldTypes.enableTermVectorOffsets("field");
fieldTypes.enableTermVectorPositions("field");
+ fieldTypes.setMultiValued("field");
doc.addLargeText("field", "abcd");
doc.addLargeText("field", "");
doc.addLargeText("field", "crunch");
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTerms.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTerms.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTerms.java Thu Nov 27 11:34:43 2014
@@ -22,11 +22,7 @@ import java.util.*;
import org.apache.lucene.analysis.CannedBinaryTokenStream;
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java Thu Nov 27 11:34:43 2014
@@ -25,7 +25,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldTypes;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
@@ -44,11 +43,11 @@ public class TestTermsEnum extends Lucen
public void test() throws Exception {
Random random = new Random(random().nextLong());
- final LineFileDocs docs = new LineFileDocs(random, true);
final Directory d = newDirectory();
MockAnalyzer analyzer = new MockAnalyzer(random());
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
final RandomIndexWriter w = new RandomIndexWriter(random(), d, analyzer);
+ final LineFileDocs docs = new LineFileDocs(w.w, random);
final int numDocs = atLeast(10);
for(int docCount=0;docCount<numDocs;docCount++) {
w.addDocument(docs.nextDoc());
@@ -830,6 +829,7 @@ public class TestTermsEnum extends Lucen
RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
FieldTypes fieldTypes = w.getFieldTypes();
fieldTypes.disableSorting("field");
+ fieldTypes.setMultiValued("field");
Document2 doc = w.newDocument();
doc.addAtom("field", "");
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java Thu Nov 27 11:34:43 2014
@@ -23,13 +23,9 @@ import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldTypes;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.IndexReader;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java Thu Nov 27 11:34:43 2014
@@ -391,9 +391,9 @@ public class TestControlledRealTimeReope
@Override
public void updateDocument(Term term,
- Iterable<? extends IndexableField> doc, Analyzer analyzer)
+ Iterable<? extends IndexableField> doc)
throws IOException {
- super.updateDocument(term, doc, analyzer);
+ super.updateDocument(term, doc);
try {
if (waitAfterUpdate) {
signal.countDown();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java Thu Nov 27 11:34:43 2014
@@ -24,10 +24,11 @@ import java.util.Locale;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.Document;
import org.apache.lucene.document.Document2;
+import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.FieldInvertState;
@@ -104,6 +105,10 @@ public class TestDisjunctionMaxQuery ext
newIndexWriterConfig(new MockAnalyzer(random()))
.setSimilarity(sim).setMergePolicy(newLogMergePolicy()));
+ FieldTypes fieldTypes = writer.getFieldTypes();
+ fieldTypes.setMultiValued("dek");
+ fieldTypes.setMultiValued("hed");
+
// hed is the most important field, dek is secondary
// d1 is an "ok" match for: albino elephant
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java Thu Nov 27 11:34:43 2014
@@ -24,7 +24,6 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldTypes;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
Added: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeFilter.java?rev=1642110&view=auto
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeFilter.java (added)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeFilter.java Thu Nov 27 11:34:43 2014
@@ -0,0 +1,50 @@
+package org.apache.lucene.search;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.lucene.document.Document2;
+import org.apache.lucene.document.FieldTypes;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.MultiDocValues;
+import org.apache.lucene.index.NumericDocValues;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
+
+// nocommit more
+
+public class TestNumericRangeFilter extends LuceneTestCase {
+ public void testBasicDoubleRange() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriter w = new IndexWriter(dir, newIndexWriterConfig());
+ Document2 doc = w.newDocument();
+ doc.addDouble("number", -103.0);
+ w.addDocument(doc);
+ IndexReader r = DirectoryReader.open(w, true);
+ FieldTypes fieldTypes = r.getFieldTypes();
+ IndexSearcher s = newSearcher(r);
+ Query q = new ConstantScoreQuery(fieldTypes.newRangeFilter("number", -110, true, 400, false));
+ assertEquals(1, s.search(q, 1).totalHits);
+ NumericDocValues ndv = MultiDocValues.getNumericValues(r, "number");
+ assertEquals(-103.0, Document2.longToDouble(ndv.get(0)), .0000000001);
+ r.close();
+ w.close();
+ dir.close();
+ }
+}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java Thu Nov 27 11:34:43 2014
@@ -61,6 +61,8 @@ public class TestPhraseQuery extends Luc
}
};
RandomIndexWriter writer = new RandomIndexWriter(random(), directory, analyzer);
+ FieldTypes fieldTypes = writer.getFieldTypes();
+ fieldTypes.setMultiValued("repeated");
Document2 doc = writer.newDocument();
doc.addLargeText("field", "one two three four five");
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java Thu Nov 27 11:34:43 2014
@@ -481,7 +481,7 @@ public class TestQueryRescorer extends L
@Override
public float score() throws IOException {
- int num = idToNum[Integer.parseInt(context.reader().document(docID).getString("id"))];
+ int num = idToNum[context.reader().document(docID).getInt("id")];
if (reverse) {
//System.out.println("score doc=" + docID + " num=" + num);
return num;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSameScoresWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSameScoresWithThreads.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSameScoresWithThreads.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSameScoresWithThreads.java Thu Nov 27 11:34:43 2014
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.concurrent.CountDownLatch;
import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
@@ -46,13 +47,13 @@ public class TestSameScoresWithThreads e
MockAnalyzer analyzer = new MockAnalyzer(random());
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
final RandomIndexWriter w = new RandomIndexWriter(random(), dir, analyzer);
- LineFileDocs docs = new LineFileDocs(random());
+ LineFileDocs docs = new LineFileDocs(w.w, random());
int charsToIndex = atLeast(100000);
int charsIndexed = 0;
//System.out.println("bytesToIndex=" + charsToIndex);
while(charsIndexed < charsToIndex) {
- Document doc = docs.nextDoc();
- charsIndexed += doc.get("body").length();
+ Document2 doc = docs.nextDoc();
+ charsIndexed += doc.getString("body").length();
w.addDocument(doc);
//System.out.println(" bytes=" + charsIndexed + " add: " + doc);
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java Thu Nov 27 11:34:43 2014
@@ -25,13 +25,9 @@ import java.util.List;
import org.apache.lucene.document.BinaryDocValuesField;
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.FloatDocValuesField;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.StoredField;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSort.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSort.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSort.java Thu Nov 27 11:34:43 2014
@@ -28,6 +28,7 @@ import org.apache.lucene.document.FieldT
import org.apache.lucene.document.FloatDocValuesField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.SortedDocValuesField;
+import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.DocValuesType;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
@@ -246,9 +247,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// numeric order
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("300000", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1, searcher.doc(td.scoreDocs[0].doc).getInt("value").intValue());
+ assertEquals(4, searcher.doc(td.scoreDocs[1].doc).getInt("value").intValue());
+ assertEquals(300000, searcher.doc(td.scoreDocs[2].doc).getInt("value").intValue());
ir.close();
dir.close();
@@ -274,9 +275,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// reverse numeric order
- assertEquals("300000", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("-1", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(300000, searcher.doc(td.scoreDocs[0].doc).getInt("value").intValue());
+ assertEquals(4, searcher.doc(td.scoreDocs[1].doc).getInt("value").intValue());
+ assertEquals(-1, searcher.doc(td.scoreDocs[2].doc).getInt("value").intValue());
ir.close();
dir.close();
@@ -303,8 +304,8 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// sort missing last by default:
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
+ assertEquals(-1, searcher.doc(td.scoreDocs[0].doc).getInt("value").intValue());
+ assertEquals(4, searcher.doc(td.scoreDocs[1].doc).getInt("value").intValue());
assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
ir.close();
@@ -332,8 +333,8 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
+ assertEquals(-1, searcher.doc(td.scoreDocs[0].doc).getInt("value").intValue());
+ assertEquals(4, searcher.doc(td.scoreDocs[1].doc).getInt("value").intValue());
assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
ir.close();
@@ -359,9 +360,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// numeric order
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("3000000000", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1L, searcher.doc(td.scoreDocs[0].doc).getLong("value").longValue());
+ assertEquals(4L, searcher.doc(td.scoreDocs[1].doc).getLong("value").longValue());
+ assertEquals(3000000000L, searcher.doc(td.scoreDocs[2].doc).getLong("value").longValue());
ir.close();
dir.close();
@@ -386,9 +387,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// reverse numeric order
- assertEquals("3000000000", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("-1", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(3000000000L, searcher.doc(td.scoreDocs[0].doc).getLong("value").longValue());
+ assertEquals(4L, searcher.doc(td.scoreDocs[1].doc).getLong("value").longValue());
+ assertEquals(-1L, searcher.doc(td.scoreDocs[2].doc).getLong("value").longValue());
ir.close();
dir.close();
@@ -415,8 +416,8 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// sort missing last by default:
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
+ assertEquals(-1L, searcher.doc(td.scoreDocs[0].doc).getLong("value").longValue());
+ assertEquals(4L, searcher.doc(td.scoreDocs[1].doc).getLong("value").longValue());
assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
ir.close();
@@ -444,8 +445,8 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
- assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4", searcher.doc(td.scoreDocs[1].doc).getString("value"));
+ assertEquals(-1, searcher.doc(td.scoreDocs[0].doc).getLong("value").longValue());
+ assertEquals(4, searcher.doc(td.scoreDocs[1].doc).getLong("value").longValue());
assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
ir.close();
@@ -472,9 +473,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// numeric order
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("30.1", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1.3f, searcher.doc(td.scoreDocs[0].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(4.2f, searcher.doc(td.scoreDocs[1].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(30.1f, searcher.doc(td.scoreDocs[2].doc).getFloat("value").floatValue(), 0.0f);
ir.close();
dir.close();
@@ -500,9 +501,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
// numeric order
- assertEquals("30.1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("-1.3", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(30.1f, searcher.doc(td.scoreDocs[0].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(4.2f, searcher.doc(td.scoreDocs[1].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(-1.3f, searcher.doc(td.scoreDocs[2].doc).getFloat("value").floatValue(), 0.0f);
ir.close();
dir.close();
@@ -530,8 +531,8 @@ public class TestSort extends LuceneTest
assertEquals(3, td.totalHits);
// sort missing last by default:
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).getString("value"));
+ assertEquals(-1.3f, searcher.doc(td.scoreDocs[0].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(4.2f, searcher.doc(td.scoreDocs[1].doc).getFloat("value").floatValue(), 0.0f);
assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
ir.close();
@@ -560,9 +561,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(3, td.totalHits);
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1.3f, searcher.doc(td.scoreDocs[0].doc).getFloat("value").floatValue(), 0.0f);
+ assertEquals(4.2f, searcher.doc(td.scoreDocs[1].doc).getFloat("value").floatValue(), 0.0f);
+ assertNull(searcher.doc(td.scoreDocs[2].doc).getFloat("value"));
ir.close();
dir.close();
@@ -588,10 +589,10 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(4, td.totalHits);
// numeric order
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[2].doc).getString("value"));
- assertEquals("30.1", searcher.doc(td.scoreDocs[3].doc).getString("value"));
+ assertEquals(-1.3, searcher.doc(td.scoreDocs[0].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(4.2333333333332, searcher.doc(td.scoreDocs[1].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(4.2333333333333, searcher.doc(td.scoreDocs[2].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(30.1, searcher.doc(td.scoreDocs[3].doc).getDouble("value").doubleValue(), 0.0);
ir.close();
dir.close();
@@ -644,10 +645,10 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(4, td.totalHits);
// numeric order
- assertEquals("30.1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[2].doc).getString("value"));
- assertEquals("-1.3", searcher.doc(td.scoreDocs[3].doc).getString("value"));
+ assertEquals(30.1, searcher.doc(td.scoreDocs[0].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(4.2333333333333, searcher.doc(td.scoreDocs[1].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(4.2333333333332, searcher.doc(td.scoreDocs[2].doc).getDouble("value").doubleValue(), 0.0);
+ assertEquals(-1.3, searcher.doc(td.scoreDocs[3].doc).getDouble("value").doubleValue(), 0.0);
ir.close();
dir.close();
@@ -674,9 +675,9 @@ public class TestSort extends LuceneTest
assertEquals(4, td.totalHits);
// sort missing last by default:
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1.3, searcher.doc(td.scoreDocs[0].doc).getDouble("value").doubleValue(), 0.0d);
+ assertEquals(4.2333333333332, searcher.doc(td.scoreDocs[1].doc).getDouble("value").doubleValue(), 0.0d);
+ assertEquals(4.2333333333333, searcher.doc(td.scoreDocs[2].doc).getDouble("value").doubleValue(), 0.0d);
assertNull(searcher.doc(td.scoreDocs[3].doc).get("value"));
ir.close();
@@ -703,9 +704,9 @@ public class TestSort extends LuceneTest
TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
assertEquals(4, td.totalHits);
- assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
- assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[1].doc).getString("value"));
- assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+ assertEquals(-1.3, searcher.doc(td.scoreDocs[0].doc).getDouble("value").doubleValue(), 0.0d);
+ assertEquals(4.2333333333332, searcher.doc(td.scoreDocs[1].doc).getDouble("value").doubleValue(), 0.0d);
+ assertEquals(4.2333333333333, searcher.doc(td.scoreDocs[2].doc).getDouble("value").doubleValue(), 0.0d);
assertNull(searcher.doc(td.scoreDocs[3].doc).get("value"));
ir.close();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSortRescorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSortRescorer.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSortRescorer.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSortRescorer.java Thu Nov 27 11:34:43 2014
@@ -150,8 +150,8 @@ public class TestSortRescorer extends Lu
@Override
public int compare(Integer a, Integer b) {
try {
- int av = idToNum[Integer.parseInt(r.document(a).getString("id"))];
- int bv = idToNum[Integer.parseInt(r.document(b).getString("id"))];
+ int av = idToNum[r.document(a).getInt("id")];
+ int bv = idToNum[r.document(b).getInt("id")];
if (av < bv) {
return -reverseInt;
} else if (bv < av) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java Thu Nov 27 11:34:43 2014
@@ -25,8 +25,6 @@ import java.util.List;
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.index.CompositeReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReaderContext;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java Thu Nov 27 11:34:43 2014
@@ -23,6 +23,7 @@ import java.util.Set;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
@@ -60,7 +61,12 @@ public class TestFieldMaskingSpanQuery e
@BeforeClass
public static void beforeClass() throws Exception {
directory = newDirectory();
- RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+ RandomIndexWriter writer = new RandomIndexWriter(random(), directory, newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+ FieldTypes fieldTypes = writer.getFieldTypes();
+
+ fieldTypes.setMultiValued("gender");
+ fieldTypes.setMultiValued("first");
+ fieldTypes.setMultiValued("last");
writer.addDocument(doc(writer,
"id", "0",
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java Thu Nov 27 11:34:43 2014
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
@@ -56,7 +57,7 @@ public class TestNRTCachingDirectory ext
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
IndexWriterConfig conf = newIndexWriterConfig(analyzer);
RandomIndexWriter w = new RandomIndexWriter(random(), cachedDir, conf);
- final LineFileDocs docs = new LineFileDocs(random(), true);
+ final LineFileDocs docs = new LineFileDocs(w.w, random());
final int numDocs = TestUtil.nextInt(random(), 100, 400);
if (VERBOSE) {
@@ -66,8 +67,8 @@ public class TestNRTCachingDirectory ext
final List<BytesRef> ids = new ArrayList<>();
DirectoryReader r = null;
for(int docCount=0;docCount<numDocs;docCount++) {
- final Document doc = docs.nextDoc();
- ids.add(new BytesRef(doc.get("docid")));
+ final Document2 doc = docs.nextDoc();
+ ids.add(new BytesRef(doc.getString("docid")));
w.addDocument(doc);
if (random().nextInt(20) == 17) {
if (r == null) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java Thu Nov 27 11:34:43 2014
@@ -305,7 +305,6 @@ public class TestFSTs extends LuceneTest
// file, up until a time limit
public void testRealTerms() throws Exception {
- final LineFileDocs docs = new LineFileDocs(random(), true);
final int RUN_TIME_MSEC = atLeast(500);
MockAnalyzer analyzer = new MockAnalyzer(random());
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
@@ -314,8 +313,9 @@ public class TestFSTs extends LuceneTest
final Path tempDir = createTempDir("fstlines");
final Directory dir = newFSDirectory(tempDir);
final IndexWriter writer = new IndexWriter(dir, conf);
+ final LineFileDocs docs = new LineFileDocs(writer, random());
final long stopTime = System.currentTimeMillis() + RUN_TIME_MSEC;
- Document doc;
+ Document2 doc;
int docCount = 0;
while((doc = docs.nextDoc()) != null && System.currentTimeMillis() < stopTime) {
writer.addDocument(doc);
Modified: lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java (original)
+++ lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java Thu Nov 27 11:34:43 2014
@@ -17,20 +17,6 @@ package org.apache.lucene.demo;
* limitations under the License.
*/
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -44,6 +30,20 @@ import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.document.Document2;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+
/** Index all text files under a directory.
* <p>
* This is a command-line application demonstrating simple Lucene indexing.
@@ -168,14 +168,13 @@ public class IndexFiles {
static void indexDoc(IndexWriter writer, Path file, long lastModified) throws IOException {
try (InputStream stream = Files.newInputStream(file)) {
// make a new, empty document
- Document doc = new Document();
+ Document2 doc = writer.newDocument();
// Add the path of the file as a field named "path". Use a
// field that is indexed (i.e. searchable), but don't tokenize
// the field into separate words and don't index term frequency
// or positional information:
- Field pathField = new StringField("path", file.toString(), Field.Store.YES);
- doc.add(pathField);
+ doc.addAtom("path", file.toString());
// Add the last modified date of the file a field named "modified".
// Use a LongField that is indexed (i.e. efficiently filterable with
@@ -184,13 +183,13 @@ public class IndexFiles {
// year/month/day/hour/minutes/seconds, down the resolution you require.
// For example the long value 2011021714 would mean
// February 17, 2011, 2-3 PM.
- doc.add(new LongField("modified", lastModified, Field.Store.NO));
+ doc.addLong("modified", lastModified);
// Add the contents of the file to a field named "contents". Specify a Reader,
// so that the text of the file is tokenized and indexed, but not stored.
// Note that FileReader expects the file to be in UTF-8 encoding.
// If that's not the case searching for special characters will fail.
- doc.add(new TextField("contents", new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))));
+ doc.addLargeText("contents", new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8)));
if (writer.getConfig().getOpenMode() == OpenMode.CREATE) {
// New index, so we just add the document (no old document can be there):
Modified: lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/AssociationsFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/AssociationsFacetsExample.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/AssociationsFacetsExample.java (original)
+++ lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/AssociationsFacetsExample.java Thu Nov 27 11:34:43 2014
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.facet.DrillDownQuery;
import org.apache.lucene.facet.FacetResult;
@@ -37,8 +38,8 @@ import org.apache.lucene.facet.taxonomy.
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.store.Directory;
@@ -68,14 +69,14 @@ public class AssociationsFacetsExample {
// Writes facet ords to a separate directory from the main index
DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir);
- Document doc = new Document();
+ Document2 doc = indexWriter.newDocument();
// 3 occurrences for tag 'lucene'
doc.add(new IntAssociationFacetField(3, "tags", "lucene"));
// 87% confidence level of genre 'computing'
doc.add(new FloatAssociationFacetField(0.87f, "genre", "computing"));
indexWriter.addDocument(config.build(taxoWriter, doc));
- doc = new Document();
+ doc = indexWriter.newDocument();
// 1 occurrence for tag 'lucene'
doc.add(new IntAssociationFacetField(1, "tags", "lucene"));
// 2 occurrence for tag 'solr'
Modified: lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/DistanceFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/DistanceFacetsExample.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/DistanceFacetsExample.java (original)
+++ lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/DistanceFacetsExample.java Thu Nov 27 11:34:43 2014
@@ -22,9 +22,10 @@ import java.io.IOException;
import java.text.ParseException;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.expressions.Expression;
import org.apache.lucene.expressions.SimpleBindings;
@@ -40,8 +41,8 @@ import org.apache.lucene.facet.range.Dou
import org.apache.lucene.facet.taxonomy.TaxonomyReader;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queries.BooleanFilter;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.BooleanClause;
@@ -93,25 +94,19 @@ public class DistanceFacetsExample imple
// Add documents with latitude/longitude location:
// we index these both as DoubleFields (for bounding box/ranges) and as NumericDocValuesFields (for scoring)
- Document doc = new Document();
- doc.add(new DoubleField("latitude", 40.759011, Field.Store.NO));
- doc.add(new NumericDocValuesField("latitude", Double.doubleToRawLongBits(40.759011)));
- doc.add(new DoubleField("longitude", -73.9844722, Field.Store.NO));
- doc.add(new NumericDocValuesField("longitude", Double.doubleToRawLongBits(-73.9844722)));
+ Document2 doc = writer.newDocument();
+ doc.addDouble("latitude", 40.759011);
+ doc.addDouble("longitude", -73.9844722);
writer.addDocument(doc);
- doc = new Document();
- doc.add(new DoubleField("latitude", 40.718266, Field.Store.NO));
- doc.add(new NumericDocValuesField("latitude", Double.doubleToRawLongBits(40.718266)));
- doc.add(new DoubleField("longitude", -74.007819, Field.Store.NO));
- doc.add(new NumericDocValuesField("longitude", Double.doubleToRawLongBits(-74.007819)));
+ doc = writer.newDocument();
+ doc.addDouble("latitude", 40.718266);
+ doc.addDouble("longitude", -74.007819);
writer.addDocument(doc);
- doc = new Document();
- doc.add(new DoubleField("latitude", 40.7051157, Field.Store.NO));
- doc.add(new NumericDocValuesField("latitude", Double.doubleToRawLongBits(40.7051157)));
- doc.add(new DoubleField("longitude", -74.0088305, Field.Store.NO));
- doc.add(new NumericDocValuesField("longitude", Double.doubleToRawLongBits(-74.0088305)));
+ doc = writer.newDocument();
+ doc.addDouble("latitude", 40.7051157);
+ doc.addDouble("longitude", -74.0088305);
writer.addDocument(doc);
// Open near-real-time searcher
@@ -139,7 +134,7 @@ public class DistanceFacetsExample imple
* maximum great circle (surface of the earth) distance,
* returns a simple Filter bounding box to "fast match"
* candidates. */
- public static Filter getBoundingBoxFilter(double originLat, double originLng, double maxDistanceKM) {
+ public static Filter getBoundingBoxFilter(FieldTypes fieldTypes, double originLat, double originLng, double maxDistanceKM) {
// Basic bounding box geo math from
// http://JanMatuschek.de/LatitudeLongitudeBoundingCoordinates,
@@ -182,7 +177,7 @@ public class DistanceFacetsExample imple
BooleanFilter f = new BooleanFilter();
// Add latitude range filter:
- f.add(NumericRangeFilter.newDoubleRange("latitude", Math.toDegrees(minLat), Math.toDegrees(maxLat), true, true),
+ f.add(fieldTypes.newRangeFilter("latitude", Math.toDegrees(minLat), true, Math.toDegrees(maxLat), true),
BooleanClause.Occur.MUST);
// Add longitude range filter:
@@ -190,13 +185,13 @@ public class DistanceFacetsExample imple
// The bounding box crosses the international date
// line:
BooleanFilter lonF = new BooleanFilter();
- lonF.add(NumericRangeFilter.newDoubleRange("longitude", Math.toDegrees(minLng), null, true, true),
+ lonF.add(fieldTypes.newRangeFilter("longitude", Math.toDegrees(minLng), true, null, true),
BooleanClause.Occur.SHOULD);
- lonF.add(NumericRangeFilter.newDoubleRange("longitude", null, Math.toDegrees(maxLng), true, true),
+ lonF.add(fieldTypes.newRangeFilter("longitude", null, true, Math.toDegrees(maxLng), true),
BooleanClause.Occur.SHOULD);
f.add(lonF, BooleanClause.Occur.MUST);
} else {
- f.add(NumericRangeFilter.newDoubleRange("longitude", Math.toDegrees(minLng), Math.toDegrees(maxLng), true, true),
+ f.add(fieldTypes.newRangeFilter("longitude", Math.toDegrees(minLng), true, Math.toDegrees(maxLng), true),
BooleanClause.Occur.MUST);
}
@@ -211,7 +206,7 @@ public class DistanceFacetsExample imple
searcher.search(new MatchAllDocsQuery(), fc);
Facets facets = new DoubleRangeFacetCounts("field", getDistanceValueSource(), fc,
- getBoundingBoxFilter(ORIGIN_LATITUDE, ORIGIN_LONGITUDE, 10.0),
+ getBoundingBoxFilter(searcher.getFieldTypes(), ORIGIN_LATITUDE, ORIGIN_LONGITUDE, 10.0),
ONE_KM,
TWO_KM,
FIVE_KM,
@@ -227,7 +222,7 @@ public class DistanceFacetsExample imple
// documents ("browse only"):
DrillDownQuery q = new DrillDownQuery(null);
final ValueSource vs = getDistanceValueSource();
- q.add("field", range.getFilter(getBoundingBoxFilter(ORIGIN_LATITUDE, ORIGIN_LONGITUDE, range.max), vs));
+ q.add("field", range.getFilter(getBoundingBoxFilter(searcher.getFieldTypes(), ORIGIN_LATITUDE, ORIGIN_LONGITUDE, range.max), vs));
DrillSideways ds = new DrillSideways(searcher, config, (TaxonomyReader) null) {
@Override
protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException {
Modified: lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/RangeFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/RangeFacetsExample.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/RangeFacetsExample.java (original)
+++ lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/RangeFacetsExample.java Thu Nov 27 11:34:43 2014
@@ -21,9 +21,10 @@ import java.io.Closeable;
import java.io.IOException;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.facet.DrillDownQuery;
import org.apache.lucene.facet.FacetResult;
@@ -34,8 +35,9 @@ import org.apache.lucene.facet.range.Lon
import org.apache.lucene.facet.range.LongRangeFacetCounts;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.search.ConstantScoreQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.NumericRangeQuery;
@@ -48,6 +50,7 @@ public class RangeFacetsExample implemen
private final Directory indexDir = new RAMDirectory();
private IndexSearcher searcher;
+ private FieldTypes fieldTypes;
private final long nowSec = System.currentTimeMillis();
final LongRange PAST_HOUR = new LongRange("Past hour", nowSec-3600, true, nowSec, true);
@@ -65,17 +68,16 @@ public class RangeFacetsExample implemen
// Add documents with a fake timestamp, 1000 sec before
// "now", 2000 sec before "now", ...:
for(int i=0;i<100;i++) {
- Document doc = new Document();
+ Document2 doc = indexWriter.newDocument();
long then = nowSec - i * 1000;
- // Add as doc values field, so we can compute range facets:
- doc.add(new NumericDocValuesField("timestamp", then));
- // Add as numeric field so we can drill-down:
- doc.add(new LongField("timestamp", then, Field.Store.NO));
+ // Add as numeric field, so we can compute range facets and drill down:
+ doc.addLong("timestamp", then);
indexWriter.addDocument(doc);
}
// Open near-real-time searcher
searcher = new IndexSearcher(DirectoryReader.open(indexWriter, true));
+ fieldTypes = searcher.getFieldTypes();
indexWriter.close();
}
@@ -108,7 +110,7 @@ public class RangeFacetsExample implemen
// documents ("browse only"):
DrillDownQuery q = new DrillDownQuery(getConfig());
- q.add("timestamp", NumericRangeQuery.newLongRange("timestamp", range.min, range.max, range.minInclusive, range.maxInclusive));
+ q.add("timestamp", new ConstantScoreQuery(fieldTypes.newRangeFilter("timestamp", range.min, range.minInclusive, range.max, range.maxInclusive)));
return searcher.search(q, 10);
}
Modified: lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java (original)
+++ lucene/dev/branches/lucene6005/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java Thu Nov 27 11:34:43 2014
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.facet.DrillDownQuery;
import org.apache.lucene.facet.DrillSideways.DrillSidewaysResult;
@@ -37,8 +38,8 @@ import org.apache.lucene.facet.taxonomy.
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.store.Directory;
@@ -64,27 +65,27 @@ public class SimpleFacetsExample {
// Writes facet ords to a separate directory from the main index
DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir);
- Document doc = new Document();
+ Document2 doc = indexWriter.newDocument();
doc.add(new FacetField("Author", "Bob"));
doc.add(new FacetField("Publish Date", "2010", "10", "15"));
indexWriter.addDocument(config.build(taxoWriter, doc));
- doc = new Document();
+ doc = indexWriter.newDocument();
doc.add(new FacetField("Author", "Lisa"));
doc.add(new FacetField("Publish Date", "2010", "10", "20"));
indexWriter.addDocument(config.build(taxoWriter, doc));
- doc = new Document();
+ doc = indexWriter.newDocument();
doc.add(new FacetField("Author", "Lisa"));
doc.add(new FacetField("Publish Date", "2012", "1", "1"));
indexWriter.addDocument(config.build(taxoWriter, doc));
- doc = new Document();
+ doc = indexWriter.newDocument();
doc.add(new FacetField("Author", "Susan"));
doc.add(new FacetField("Publish Date", "2012", "1", "7"));
indexWriter.addDocument(config.build(taxoWriter, doc));
- doc = new Document();
+ doc = indexWriter.newDocument();
doc.add(new FacetField("Author", "Frank"));
doc.add(new FacetField("Publish Date", "1999", "5", "5"));
indexWriter.addDocument(config.build(taxoWriter, doc));