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 [7/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/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheReopen.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheReopen.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheReopen.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheReopen.java Thu Nov 27 11:34:43 2014
@@ -18,12 +18,13 @@ package org.apache.lucene.uninverting;
  */
 
 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.IntField;
-import org.apache.lucene.index.LeafReader;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.NumericDocValues;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -42,15 +43,18 @@ public class TestFieldCacheReopen extend
         newIndexWriterConfig(new MockAnalyzer(random())).
             setMergePolicy(newLogMergePolicy(10))
     );
-    Document doc = new Document();
-    doc.add(new IntField("number", 17, Field.Store.NO));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("number");
+
+    Document2 doc = writer.newDocument();
+    doc.addInt("number", 17);
     writer.addDocument(doc);
     writer.commit();
   
     // Open reader1
     DirectoryReader r = DirectoryReader.open(dir);
     LeafReader r1 = getOnlySegmentReader(r);
-    final NumericDocValues ints = FieldCache.DEFAULT.getNumerics(r1, "number", FieldCache.NUMERIC_UTILS_INT_PARSER, false);
+    final NumericDocValues ints = FieldCache.DEFAULT.getNumerics(r1, "number", FieldCache.DOCUMENT2_INT_PARSER, false);
     assertEquals(17, ints.get(0));
   
     // Add new segment
@@ -62,7 +66,7 @@ public class TestFieldCacheReopen extend
     assertNotNull(r2);
     r.close();
     LeafReader sub0 = r2.leaves().get(0).reader();
-    final NumericDocValues ints2 = FieldCache.DEFAULT.getNumerics(sub0, "number", FieldCache.NUMERIC_UTILS_INT_PARSER, false);
+    final NumericDocValues ints2 = FieldCache.DEFAULT.getNumerics(sub0, "number", FieldCache.DOCUMENT2_INT_PARSER, false);
     r2.close();
     assertTrue(ints == ints2);
   

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSanityChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSanityChecker.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSanityChecker.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSanityChecker.java Thu Nov 27 11:34:43 2014
@@ -19,15 +19,13 @@ package org.apache.lucene.uninverting;
 import java.io.IOException;
 
 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;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
-import org.apache.lucene.index.LeafReader;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.MultiReader;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.store.Directory;
@@ -51,21 +49,37 @@ public class TestFieldCacheSanityChecker
     dirB = newDirectory();
 
     IndexWriter wA = new IndexWriter(dirA, newIndexWriterConfig(new MockAnalyzer(random())));
+    FieldTypes fieldTypes = wA.getFieldTypes();
+    fieldTypes.disableSorting("theLong");
+    fieldTypes.disableSorting("theDouble");
+    fieldTypes.disableSorting("theInt");
+    fieldTypes.disableSorting("thedFloatLong");
+
     IndexWriter wB = new IndexWriter(dirB, newIndexWriterConfig(new MockAnalyzer(random())));
+    fieldTypes = wB.getFieldTypes();
+    fieldTypes.disableSorting("theLong");
+    fieldTypes.disableSorting("theDouble");
+    fieldTypes.disableSorting("theInt");
+    fieldTypes.disableSorting("thedFloatLong");
 
     long theLong = Long.MAX_VALUE;
     double theDouble = Double.MAX_VALUE;
     int theInt = Integer.MAX_VALUE;
     float theFloat = Float.MAX_VALUE;
     for (int i = 0; i < NUM_DOCS; i++){
-      Document doc = new Document();
-      doc.add(new LongField("theLong", theLong--, Field.Store.NO));
-      doc.add(new DoubleField("theDouble", theDouble--, Field.Store.NO));
-      doc.add(new IntField("theInt", theInt--, Field.Store.NO));
-      doc.add(new FloatField("theFloat", theFloat--, Field.Store.NO));
       if (0 == i % 3) {
+        Document2 doc = wA.newDocument();
+        doc.addLong("theLong", theLong--);
+        doc.addDouble("theDouble", theDouble--);
+        doc.addInt("theInt", theInt--);
+        doc.addFloat("theFloat", theFloat--);
         wA.addDocument(doc);
       } else {
+        Document2 doc = wB.newDocument();
+        doc.addLong("theLong", theLong--);
+        doc.addDouble("theDouble", theDouble--);
+        doc.addInt("theInt", theInt--);
+        doc.addFloat("theFloat", theFloat--);
         wB.addDocument(doc);
       }
     }
@@ -94,11 +108,11 @@ public class TestFieldCacheSanityChecker
     FieldCache cache = FieldCache.DEFAULT;
     cache.purgeAllCaches();
 
-    cache.getNumerics(readerA, "theDouble", FieldCache.NUMERIC_UTILS_DOUBLE_PARSER, false);
-    cache.getNumerics(readerAclone, "theDouble", FieldCache.NUMERIC_UTILS_DOUBLE_PARSER, false);
-    cache.getNumerics(readerB, "theDouble", FieldCache.NUMERIC_UTILS_DOUBLE_PARSER, false);
+    cache.getNumerics(readerA, "theDouble", FieldCache.DOCUMENT2_DOUBLE_PARSER, false);
+    cache.getNumerics(readerAclone, "theDouble", FieldCache.DOCUMENT2_DOUBLE_PARSER, false);
+    cache.getNumerics(readerB, "theDouble", FieldCache.DOCUMENT2_DOUBLE_PARSER, false);
 
-    cache.getNumerics(readerX, "theInt", FieldCache.NUMERIC_UTILS_INT_PARSER, false);
+    cache.getNumerics(readerX, "theInt", FieldCache.DOCUMENT2_INT_PARSER, false);
 
     // // // 
 
@@ -117,7 +131,7 @@ public class TestFieldCacheSanityChecker
     FieldCache cache = FieldCache.DEFAULT;
     cache.purgeAllCaches();
 
-    cache.getNumerics(readerX, "theInt", FieldCache.NUMERIC_UTILS_INT_PARSER, false);
+    cache.getNumerics(readerX, "theInt", FieldCache.DOCUMENT2_INT_PARSER, false);
     cache.getTerms(readerX, "theInt", false);
 
     // // // 

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSort.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSort.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSort.java Thu Nov 27 11:34:43 2014
@@ -23,14 +23,13 @@ import java.util.HashMap;
 import java.util.Map;
 
 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;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.DocValuesType;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
@@ -68,11 +67,15 @@ public class TestFieldCacheSort extends 
   private void testString(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.setDocValuesType("value", DocValuesType.NONE);
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -105,13 +108,16 @@ public class TestFieldCacheSort extends 
   private void testStringMissing(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -144,11 +150,13 @@ public class TestFieldCacheSort extends 
   private void testStringReverse(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -181,13 +189,16 @@ public class TestFieldCacheSort extends 
   private void testStringMissingSortedFirst(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -222,13 +233,16 @@ public class TestFieldCacheSort extends 
   private void testStringMissingSortedFirstReverse(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -263,13 +277,16 @@ public class TestFieldCacheSort extends 
   private void testStringMissingSortedLast(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -305,13 +322,15 @@ public class TestFieldCacheSort extends 
   private void testStringMissingSortedLastReverse(SortField.Type sortType) throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Type type = sortType == SortField.Type.STRING ? Type.SORTED : Type.BINARY;
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
@@ -338,11 +357,13 @@ public class TestFieldCacheSort extends 
   public void testFieldDoc() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.NO));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.NO));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     IndexReader ir = writer.getReader();
     writer.close();
@@ -364,11 +385,14 @@ public class TestFieldCacheSort extends 
   public void testFieldDocReverse() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.NO));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.NO));
+    doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     IndexReader ir = writer.getReader();
     writer.close();
@@ -390,11 +414,11 @@ public class TestFieldCacheSort extends 
   public void testFieldScore() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newTextField("value", "foo bar bar bar bar", Field.Store.NO));
+    Document2 doc = writer.newDocument();
+    doc.addLargeText("value", "foo bar bar bar bar");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newTextField("value", "foo foo foo foo foo", Field.Store.NO));
+    doc = writer.newDocument();
+    doc.addLargeText("value", "foo foo foo foo foo");
     writer.addDocument(doc);
     IndexReader ir = writer.getReader();
     writer.close();
@@ -420,11 +444,11 @@ public class TestFieldCacheSort extends 
   public void testFieldScoreReverse() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newTextField("value", "foo bar bar bar bar", Field.Store.NO));
+    Document2 doc = writer.newDocument();
+    doc.addLargeText("value", "foo bar bar bar bar");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newTextField("value", "foo foo foo foo foo", Field.Store.NO));
+    doc = writer.newDocument();
+    doc.addLargeText("value", "foo foo foo foo foo");
     writer.addDocument(doc);
     IndexReader ir = writer.getReader();
     writer.close();
@@ -449,14 +473,16 @@ public class TestFieldCacheSort extends 
   public void testInt() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new IntField("value", 300000, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addInt("value", 300000);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.INTEGER));
@@ -468,9 +494,9 @@ public class TestFieldCacheSort extends 
     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).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("300000", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -480,13 +506,15 @@ public class TestFieldCacheSort extends 
   public void testIntMissing() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.INTEGER));
@@ -498,9 +526,9 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // null is treated as a 0
-    assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
+    assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
     assertNull(searcher.doc(td.scoreDocs[1].doc).getString("value"));
-    assertEquals("4", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+    assertEquals("4", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -510,13 +538,15 @@ public class TestFieldCacheSort extends 
   public void testIntMissingLast() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.INTEGER));
@@ -530,8 +560,8 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // null is treated as a Integer.MAX_VALUE
-    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).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
     assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
     TestUtil.checkReader(ir);
     ir.close();
@@ -542,14 +572,16 @@ public class TestFieldCacheSort extends 
   public void testIntReverse() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new IntField("value", 300000, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addInt("value", 300000);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new IntField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addInt("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.INTEGER));
@@ -561,9 +593,9 @@ public class TestFieldCacheSort extends 
     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).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("-1", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -573,14 +605,16 @@ public class TestFieldCacheSort extends 
   public void testLong() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new LongField("value", 3000000000L, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addLong("value", 3000000000L);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.LONG));
@@ -592,9 +626,9 @@ public class TestFieldCacheSort extends 
     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("-1", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("3000000000", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -604,13 +638,15 @@ public class TestFieldCacheSort extends 
   public void testLongMissing() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.LONG));
@@ -622,9 +658,9 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // null is treated as 0
-    assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).getString("value"));
+    assertEquals("-1", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
     assertNull(searcher.doc(td.scoreDocs[1].doc).getString("value"));
-    assertEquals("4", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+    assertEquals("4", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -634,13 +670,15 @@ public class TestFieldCacheSort extends 
   public void testLongMissingLast() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.LONG));
@@ -654,8 +692,8 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // null is treated as Long.MAX_VALUE
-    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).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
     assertNull(searcher.doc(td.scoreDocs[2].doc).getString("value"));
     TestUtil.checkReader(ir);
     ir.close();
@@ -666,14 +704,16 @@ public class TestFieldCacheSort extends 
   public void testLongReverse() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new LongField("value", 3000000000L, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addLong("value", 3000000000L);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", -1, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", -1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new LongField("value", 4, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addLong("value", 4);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.LONG));
@@ -685,9 +725,9 @@ public class TestFieldCacheSort extends 
     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("3000000000", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("-1", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -697,14 +737,16 @@ public class TestFieldCacheSort extends 
   public void testFloat() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new FloatField("value", 30.1f, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addFloat("value", 30.1f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", -1.3f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", -1.3f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", 4.2f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", 4.2f);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.FLOAT));
@@ -716,9 +758,9 @@ public class TestFieldCacheSort extends 
     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.3", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("30.1", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -728,13 +770,15 @@ public class TestFieldCacheSort extends 
   public void testFloatMissing() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", -1.3f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", -1.3f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", 4.2f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", 4.2f);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.FLOAT));
@@ -745,10 +789,9 @@ public class TestFieldCacheSort extends 
 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
-    // null is treated as 0
-    assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
-    assertNull(searcher.doc(td.scoreDocs[1].doc).getString("value"));
-    assertEquals("4.2", searcher.doc(td.scoreDocs[2].doc).getString("value"));
+    assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertNull(searcher.doc(td.scoreDocs[1].doc).get("value"));
+    assertEquals("4.2", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -758,13 +801,15 @@ public class TestFieldCacheSort extends 
   public void testFloatMissingLast() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", -1.3f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", -1.3f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", 4.2f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", 4.2f);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.FLOAT));
@@ -778,9 +823,9 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // null is treated as Float.MAX_VALUE
-    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.3", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertNull(searcher.doc(td.scoreDocs[2].doc).get("value"));
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -790,14 +835,16 @@ public class TestFieldCacheSort extends 
   public void testFloatReverse() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new FloatField("value", 30.1f, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addFloat("value", 30.1f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", -1.3f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", -1.3f);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new FloatField("value", 4.2f, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addFloat("value", 4.2f);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.FLOAT));
@@ -809,9 +856,9 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(3, td.totalHits);
     // reverse 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.1", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("-1.3", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -821,17 +868,19 @@ public class TestFieldCacheSort extends 
   public void testDouble() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new DoubleField("value", 30.1, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addDouble("value", 30.1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", -1.3, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", -1.3);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333333, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333333);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333332, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333332);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.DOUBLE));
@@ -843,10 +892,10 @@ public class TestFieldCacheSort extends 
     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).get("value").toString());
+    assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
+    assertEquals("30.1", searcher.doc(td.scoreDocs[3].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -856,13 +905,15 @@ public class TestFieldCacheSort extends 
   public void testDoubleSignedZero() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new DoubleField("value", +0d, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addDouble("value", +0d);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", -0d, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", -0d);
     writer.addDocument(doc);
-    doc = new Document();
+    doc = writer.newDocument();
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.DOUBLE));
     writer.close();
@@ -889,16 +940,18 @@ public class TestFieldCacheSort extends 
   public void testDoubleMissing() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", -1.3, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", -1.3);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333333, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333333);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333332, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333332);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.DOUBLE));
@@ -910,10 +963,10 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(4, td.totalHits);
     // null treated as a 0
-    assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).getString("value"));
+    assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
     assertNull(searcher.doc(td.scoreDocs[1].doc).getString("value"));
-    assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[2].doc).getString("value"));
-    assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[3].doc).getString("value"));
+    assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
+    assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[3].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -923,16 +976,18 @@ public class TestFieldCacheSort extends 
   public void testDoubleMissingLast() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", -1.3, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", -1.3);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333333, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333333);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333332, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333332);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.DOUBLE));
@@ -946,10 +1001,10 @@ public class TestFieldCacheSort extends 
     TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort);
     assertEquals(4, td.totalHits);
     // null treated as Double.MAX_VALUE
-    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"));
-    assertNull(searcher.doc(td.scoreDocs[3].doc).getString("value"));
+    assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value").toString());
+    assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
+    assertNull(searcher.doc(td.scoreDocs[3].doc).get("value"));
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -959,17 +1014,19 @@ public class TestFieldCacheSort extends 
   public void testDoubleReverse() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(new DoubleField("value", 30.1, Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addDouble("value", 30.1);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", -1.3, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", -1.3);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333333, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333333);
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(new DoubleField("value", 4.2333333333332, Field.Store.YES));
+    doc = writer.newDocument();
+    doc.addDouble("value", 4.2333333333332);
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(), 
                      Collections.singletonMap("value", Type.DOUBLE));
@@ -981,10 +1038,10 @@ public class TestFieldCacheSort extends 
     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).get("value").toString());
+    assertEquals("4.2333333333333", searcher.doc(td.scoreDocs[1].doc).get("value").toString());
+    assertEquals("4.2333333333332", searcher.doc(td.scoreDocs[2].doc).get("value").toString());
+    assertEquals("-1.3", searcher.doc(td.scoreDocs[3].doc).get("value").toString());
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -993,13 +1050,16 @@ public class TestFieldCacheSort extends 
   public void testEmptyStringVsNullStringSort() throws Exception {
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random())));
-    Document doc = new Document();
-    doc.add(newStringField("f", "", Field.Store.NO));
-    doc.add(newStringField("t", "1", Field.Store.NO));
+    FieldTypes fieldTypes = w.getFieldTypes();
+    fieldTypes.disableSorting("f");
+    fieldTypes.disableSorting("t");
+    Document2 doc = w.newDocument();
+    doc.addAtom("f", "");
+    doc.addAtom("t", "1");
     w.addDocument(doc);
     w.commit();
-    doc = new Document();
-    doc.add(newStringField("t", "1", Field.Store.NO));
+    doc = w.newDocument();
+    doc.addAtom("t", "1");
     w.addDocument(doc);
 
     IndexReader r = UninvertingReader.wrap(DirectoryReader.open(w, true), 
@@ -1020,11 +1080,14 @@ public class TestFieldCacheSort extends 
   public void testMultiValuedField() throws IOException {
     Directory indexStore = newDirectory();
     IndexWriter writer = new IndexWriter(indexStore, newIndexWriterConfig(new MockAnalyzer(random())));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.setMultiValued("string");
+    fieldTypes.disableSorting("string");
     for(int i=0; i<5; i++) {
-        Document doc = new Document();
-        doc.add(new StringField("string", "a"+i, Field.Store.NO));
-        doc.add(new StringField("string", "b"+i, Field.Store.NO));
-        writer.addDocument(doc);
+      Document2 doc = writer.newDocument();
+      doc.addAtom("string", "a"+i);
+      doc.addAtom("string", "b"+i);
+      writer.addDocument(doc);
     }
     writer.forceMerge(1); // enforce one segment to have a higher unique term count in all cases
     writer.close();
@@ -1049,14 +1112,14 @@ public class TestFieldCacheSort extends 
     int id = 0;
     for(int seg=0;seg<2;seg++) {
       for(int docIDX=0;docIDX<10;docIDX++) {
-        Document doc = new Document();
-        doc.add(new IntField("id", docIDX, Field.Store.YES));
+        Document2 doc = w.newDocument();
+        doc.addInt("id", docIDX);
         StringBuilder sb = new StringBuilder();
         for(int i=0;i<id;i++) {
           sb.append(' ');
           sb.append("text");
         }
-        doc.add(newTextField("body", sb.toString(), Field.Store.NO));
+        doc.addLargeText("body", sb.toString());
         w.addDocument(doc);
         id++;
       }
@@ -1112,8 +1175,10 @@ public class TestFieldCacheSort extends 
   public void testSortOneDocument() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(),
                      Collections.singletonMap("value", Type.SORTED));
@@ -1134,8 +1199,10 @@ public class TestFieldCacheSort extends 
   public void testSortOneDocumentWithScores() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
     IndexReader ir = UninvertingReader.wrap(writer.getReader(),
                      Collections.singletonMap("value", Type.SORTED));
@@ -1159,13 +1226,16 @@ public class TestFieldCacheSort extends 
   public void testSortTwoFields() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("tievalue", "tied", Field.Store.NO));
-    doc.add(newStringField("value", "foo", Field.Store.YES));
-    writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("tievalue", "tied", Field.Store.NO));
-    doc.add(newStringField("value", "bar", Field.Store.YES));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("value");
+    fieldTypes.disableSorting("tievalue");
+    Document2 doc = writer.newDocument();
+    doc.addAtom("tievalue", "tied");
+    doc.addAtom("value", "foo");
+    writer.addDocument(doc);
+    doc = writer.newDocument();
+    doc.addAtom("tievalue", "tied");
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
     Map<String,Type> mappings = new HashMap<>();
     mappings.put("tievalue", Type.SORTED);
@@ -1192,11 +1262,11 @@ public class TestFieldCacheSort extends 
   public void testScore() throws IOException {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-    doc.add(newStringField("value", "bar", Field.Store.NO));
+    Document2 doc = writer.newDocument();
+    doc.addAtom("value", "bar");
     writer.addDocument(doc);
-    doc = new Document();
-    doc.add(newStringField("value", "foo", Field.Store.NO));
+    doc = writer.newDocument();
+    doc.addAtom("value", "foo");
     writer.addDocument(doc);
     IndexReader ir = writer.getReader();
     writer.close();

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSortRandom.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSortRandom.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSortRandom.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheSortRandom.java Thu Nov 27 11:34:43 2014
@@ -28,13 +28,14 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 
+import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.NumericDocValues;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.BooleanClause.Occur;
@@ -50,9 +51,9 @@ import org.apache.lucene.search.SortFiel
 import org.apache.lucene.search.TopFieldDocs;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.uninverting.UninvertingReader.Type;
+import org.apache.lucene.util.BitDocIdSet;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.BitDocIdSet;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
@@ -74,6 +75,10 @@ public class TestFieldCacheSortRandom ex
     final int NUM_DOCS = atLeast(100);
     final Directory dir = newDirectory();
     final RandomIndexWriter writer = new RandomIndexWriter(random, dir);
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("stringdv");
+    fieldTypes.disableSorting("id");
+
     final boolean allowDups = random.nextBoolean();
     final Set<String> seen = new HashSet<>();
     final int maxLength = TestUtil.nextInt(random, 5, 100);
@@ -85,7 +90,7 @@ public class TestFieldCacheSortRandom ex
     final List<BytesRef> docValues = new ArrayList<>();
     // TODO: deletions
     while (numDocs < NUM_DOCS) {
-      final Document doc = new Document();
+      final Document2 doc = writer.newDocument();
 
       // 10% of the time, the document is missing the value:
       final BytesRef br;
@@ -108,7 +113,7 @@ public class TestFieldCacheSortRandom ex
           System.out.println("  " + numDocs + ": s=" + s);
         }
 
-        doc.add(new StringField("stringdv", s, Field.Store.NO));
+        doc.addAtom("stringdv", s);
         docValues.add(new BytesRef(s));
 
       } else {
@@ -119,7 +124,7 @@ public class TestFieldCacheSortRandom ex
         docValues.add(null);
       }
 
-      doc.add(new IntField("id", numDocs, Field.Store.YES));
+      doc.addInt("id", numDocs);
       writer.addDocument(doc);
       numDocs++;
 

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheVsDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheVsDocValues.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheVsDocValues.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheVsDocValues.java Thu Nov 27 11:34:43 2014
@@ -28,6 +28,7 @@ import org.apache.lucene.document.Binary
 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.NumericDocValuesField;
 import org.apache.lucene.document.SortedDocValuesField;
 import org.apache.lucene.document.SortedSetDocValuesField;
@@ -135,6 +136,8 @@ public class TestFieldCacheVsDocValues e
       numDocs = TestUtil.nextInt(random(), 100, 200);
     }
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig(analyzer));
+    FieldTypes fieldTypes = w.getFieldTypes();
+    fieldTypes.disableSorting("field");
     List<byte[]> docBytes = new ArrayList<>();
     long totalBytes = 0;
     for(int docID=0;docID<numDocs;docID++) {
@@ -158,14 +161,16 @@ public class TestFieldCacheVsDocValues e
       byte[] bytes = new byte[numBytes];
       random().nextBytes(bytes);
       docBytes.add(bytes);
-      Document doc = new Document();      
+      Document2 doc = w.newDocument();      
       BytesRef b = new BytesRef(bytes);
       b.length = bytes.length;
-      doc.add(new BinaryDocValuesField("field", b));
-      doc.add(new StringField("id", ""+docID, Field.Store.YES));
+      doc.addBinary("field", b);
+      doc.addAtom("id", ""+docID);
       try {
         w.addDocument(doc);
       } catch (IllegalArgumentException iae) {
+        System.out.println("got:");
+        iae.printStackTrace(System.out);
         if (iae.getMessage().indexOf("is too large") == -1) {
           throw iae;
         } else {
@@ -234,6 +239,9 @@ public class TestFieldCacheVsDocValues e
       numDocs = TestUtil.nextInt(random(), 100, 200);
     }
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig(analyzer));
+    FieldTypes fieldTypes = w.getFieldTypes();
+    fieldTypes.disableSorting("field");
+
     List<byte[]> docBytes = new ArrayList<>();
     long totalBytes = 0;
     for(int docID=0;docID<numDocs;docID++) {
@@ -257,11 +265,11 @@ public class TestFieldCacheVsDocValues e
       byte[] bytes = new byte[numBytes];
       random().nextBytes(bytes);
       docBytes.add(bytes);
-      Document doc = new Document();      
+      Document2 doc = w.newDocument();      
       BytesRef b = new BytesRef(bytes);
       b.length = bytes.length;
-      doc.add(new BinaryDocValuesField("field", b));
-      doc.add(new StringField("id", ""+docID, Field.Store.YES));
+      doc.addBinary("field", b);
+      doc.addAtom("id", ""+docID);
       w.addDocument(doc);
     }
     
@@ -287,18 +295,12 @@ public class TestFieldCacheVsDocValues e
     Directory dir = newDirectory();
     IndexWriterConfig conf = newIndexWriterConfig(new MockAnalyzer(random()));
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, conf);
-    Document doc = new Document();
-    Field idField = new StringField("id", "", Field.Store.NO);
-    Field indexedField = new StringField("indexed", "", Field.Store.NO);
-    Field dvField = new SortedDocValuesField("dv", new BytesRef());
-    doc.add(idField);
-    doc.add(indexedField);
-    doc.add(dvField);
     
     // index some docs
     int numDocs = atLeast(300);
     for (int i = 0; i < numDocs; i++) {
-      idField.setStringValue(Integer.toString(i));
+      Document2 doc = writer.newDocument();
+      doc.addAtom("id", Integer.toString(i));
       final int length;
       if (minLength == maxLength) {
         length = minLength; // fixed length
@@ -306,8 +308,8 @@ public class TestFieldCacheVsDocValues e
         length = TestUtil.nextInt(random(), minLength, maxLength);
       }
       String value = TestUtil.randomSimpleString(random(), length);
-      indexedField.setStringValue(value);
-      dvField.setBytesValue(new BytesRef(value));
+      doc.addAtom("indexed", value);
+      doc.addBinary("dv", new BytesRef(value));
       writer.addDocument(doc);
       if (random().nextInt(31) == 0) {
         writer.commit();
@@ -342,9 +344,8 @@ public class TestFieldCacheVsDocValues e
     // index some docs
     int numDocs = atLeast(300);
     for (int i = 0; i < numDocs; i++) {
-      Document doc = new Document();
-      Field idField = new StringField("id", Integer.toString(i), Field.Store.YES);
-      doc.add(idField);
+      Document2 doc = writer.newDocument();
+      doc.addAtom("id", Integer.toString(i));
       final int length = TestUtil.nextInt(random(), minLength, maxLength);
       int numValues = random().nextInt(17);
       // create a random list of strings
@@ -411,10 +412,6 @@ public class TestFieldCacheVsDocValues e
     Directory dir = newDirectory();
     IndexWriterConfig conf = newIndexWriterConfig(new MockAnalyzer(random()));
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, conf);
-    Field idField = new StringField("id", "", Field.Store.NO);
-    Field indexedField = newStringField("indexed", "", Field.Store.NO);
-    Field dvField = new NumericDocValuesField("dv", 0);
-
     
     // index some docs
     int numDocs = atLeast(300);
@@ -422,16 +419,13 @@ public class TestFieldCacheVsDocValues e
     // for numbers of values <= 256, all storage layouts are tested
     assert numDocs > 256;
     for (int i = 0; i < numDocs; i++) {
-      idField.setStringValue(Integer.toString(i));
       long value = longs.next();
-      indexedField.setStringValue(Long.toString(value));
-      dvField.setLongValue(value);
-      Document doc = new Document();
-      doc.add(idField);
+      Document2 doc = writer.newDocument();
+      doc.addAtom("id", Integer.toString(i));
       // 1/4 of the time we neglect to add the fields
       if (random().nextInt(4) > 0) {
-        doc.add(indexedField);
-        doc.add(dvField);
+        doc.addAtom("indexed", Long.toString(value));
+        doc.addLong("dv", value);
       }
       writer.addDocument(doc);
       if (random().nextInt(31) == 0) {

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms32.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms32.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms32.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms32.java Thu Nov 27 11:34:43 2014
@@ -21,17 +21,20 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.search.ConstantScoreQuery;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.NumericRangeQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
+import org.apache.lucene.search.TermRangeQuery;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.uninverting.UninvertingReader.Type;
@@ -62,44 +65,19 @@ public class TestNumericTerms32 extends 
         newIndexWriterConfig(new MockAnalyzer(random()))
         .setMaxBufferedDocs(TestUtil.nextInt(random(), 100, 1000))
         .setMergePolicy(newLogMergePolicy()));
-    
-    final FieldType storedInt = new FieldType(IntField.TYPE_NOT_STORED);
-    storedInt.setStored(true);
-    storedInt.freeze();
-
-    final FieldType storedInt8 = new FieldType(storedInt);
-    storedInt8.setNumericPrecisionStep(8);
-
-    final FieldType storedInt4 = new FieldType(storedInt);
-    storedInt4.setNumericPrecisionStep(4);
-
-    final FieldType storedInt2 = new FieldType(storedInt);
-    storedInt2.setNumericPrecisionStep(2);
-
-    IntField
-      field8 = new IntField("field8", 0, storedInt8),
-      field4 = new IntField("field4", 0, storedInt4),
-      field2 = new IntField("field2", 0, storedInt2);
-    
-    Document doc = new Document();
-    // add fields, that have a distance to test general functionality
-    doc.add(field8); doc.add(field4); doc.add(field2);
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("field");
     
     // Add a series of noDocs docs with increasing int values
     for (int l=0; l<noDocs; l++) {
+      Document2 doc = writer.newDocument();
       int val=distance*l+startOffset;
-      field8.setIntValue(val);
-      field4.setIntValue(val);
-      field2.setIntValue(val);
-
-      val=l-(noDocs/2);
+      doc.addInt("field", val);
       writer.addDocument(doc);
     }
   
     Map<String,Type> map = new HashMap<>();
-    map.put("field2", Type.INTEGER);
-    map.put("field4", Type.INTEGER);
-    map.put("field8", Type.INTEGER);
+    map.put("field", Type.INTEGER);
     reader = UninvertingReader.wrap(writer.getReader(), map);
     searcher=newSearcher(reader);
     writer.close();
@@ -114,9 +92,12 @@ public class TestNumericTerms32 extends 
     directory.close();
     directory = null;
   }
-  
-  private void testSorting(int precisionStep) throws Exception {
-    String field="field"+precisionStep;
+
+  @Test
+  public void testSorting() throws Exception {
+    FieldTypes fieldTypes = reader.getFieldTypes();
+
+    String field="field";
     // 10 random tests, the index order is ascending,
     // so using a reverse sort field should retun descending documents
     int num = TestUtil.nextInt(random(), 10, 20);
@@ -126,7 +107,7 @@ public class TestNumericTerms32 extends 
       if (lower>upper) {
         int a=lower; lower=upper; upper=a;
       }
-      Query tq=NumericRangeQuery.newIntRange(field, precisionStep, lower, upper, true, true);
+      Query tq = new ConstantScoreQuery(fieldTypes.newRangeFilter(field, lower, true, upper, true));
       TopDocs topDocs = searcher.search(tq, null, noDocs, new Sort(new SortField(field, SortField.Type.INT, true)));
       if (topDocs.totalHits==0) continue;
       ScoreDoc[] sd = topDocs.scoreDocs;
@@ -139,19 +120,4 @@ public class TestNumericTerms32 extends 
       }
     }
   }
-
-  @Test
-  public void testSorting_8bit() throws Exception {
-    testSorting(8);
-  }
-  
-  @Test
-  public void testSorting_4bit() throws Exception {
-    testSorting(4);
-  }
-  
-  @Test
-  public void testSorting_2bit() throws Exception {
-    testSorting(2);
-  }  
 }

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms64.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms64.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms64.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestNumericTerms64.java Thu Nov 27 11:34:43 2014
@@ -21,11 +21,13 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.search.ConstantScoreQuery;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.NumericRangeQuery;
 import org.apache.lucene.search.Query;
@@ -62,49 +64,18 @@ public class TestNumericTerms64 extends 
         newIndexWriterConfig(new MockAnalyzer(random()))
         .setMaxBufferedDocs(TestUtil.nextInt(random(), 100, 1000))
         .setMergePolicy(newLogMergePolicy()));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.disableSorting("field");
 
-    final FieldType storedLong = new FieldType(LongField.TYPE_NOT_STORED);
-    storedLong.setStored(true);
-    storedLong.freeze();
-
-    final FieldType storedLong8 = new FieldType(storedLong);
-    storedLong8.setNumericPrecisionStep(8);
-
-    final FieldType storedLong4 = new FieldType(storedLong);
-    storedLong4.setNumericPrecisionStep(4);
-
-    final FieldType storedLong6 = new FieldType(storedLong);
-    storedLong6.setNumericPrecisionStep(6);
-
-    final FieldType storedLong2 = new FieldType(storedLong);
-    storedLong2.setNumericPrecisionStep(2);
-
-    LongField
-      field8 = new LongField("field8", 0L, storedLong8),
-      field6 = new LongField("field6", 0L, storedLong6),
-      field4 = new LongField("field4", 0L, storedLong4),
-      field2 = new LongField("field2", 0L, storedLong2);
-
-    Document doc = new Document();
-    // add fields, that have a distance to test general functionality
-    doc.add(field8); doc.add(field6); doc.add(field4); doc.add(field2);
-    
     // Add a series of noDocs docs with increasing long values, by updating the fields
     for (int l=0; l<noDocs; l++) {
+      Document2 doc = writer.newDocument();
       long val=distance*l+startOffset;
-      field8.setLongValue(val);
-      field6.setLongValue(val);
-      field4.setLongValue(val);
-      field2.setLongValue(val);
-
-      val=l-(noDocs/2);
+      doc.addLong("field", val);
       writer.addDocument(doc);
     }
     Map<String,Type> map = new HashMap<>();
-    map.put("field2", Type.LONG);
-    map.put("field4", Type.LONG);
-    map.put("field6", Type.LONG);
-    map.put("field8", Type.LONG);
+    map.put("field", Type.LONG);
     reader = UninvertingReader.wrap(writer.getReader(), map);
     searcher=newSearcher(reader);
     writer.close();
@@ -120,8 +91,9 @@ public class TestNumericTerms64 extends 
     directory = null;
   }
   
-  private void testSorting(int precisionStep) throws Exception {
-    String field="field"+precisionStep;
+  public void testSorting() throws Exception {
+    FieldTypes fieldTypes = reader.getFieldTypes();
+    String field="field";
     // 10 random tests, the index order is ascending,
     // so using a reverse sort field should retun descending documents
     int num = TestUtil.nextInt(random(), 10, 20);
@@ -131,7 +103,7 @@ public class TestNumericTerms64 extends 
       if (lower>upper) {
         long a=lower; lower=upper; upper=a;
       }
-      Query tq=NumericRangeQuery.newLongRange(field, precisionStep, lower, upper, true, true);
+      Query tq = new ConstantScoreQuery(fieldTypes.newRangeFilter(field, lower, true, upper, true));
       TopDocs topDocs = searcher.search(tq, null, noDocs, new Sort(new SortField(field, SortField.Type.LONG, true)));
       if (topDocs.totalHits==0) continue;
       ScoreDoc[] sd = topDocs.scoreDocs;
@@ -144,24 +116,4 @@ public class TestNumericTerms64 extends 
       }
     }
   }
-
-  @Test
-  public void testSorting_8bit() throws Exception {
-    testSorting(8);
-  }
-  
-  @Test
-  public void testSorting_6bit() throws Exception {
-    testSorting(6);
-  }
-  
-  @Test
-  public void testSorting_4bit() throws Exception {
-    testSorting(4);
-  }
-  
-  @Test
-  public void testSorting_2bit() throws Exception {
-    testSorting(2);
-  }
 }

Modified: lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestUninvertingReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestUninvertingReader.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestUninvertingReader.java (original)
+++ lucene/dev/branches/lucene6005/lucene/misc/src/test/org/apache/lucene/uninverting/TestUninvertingReader.java Thu Nov 27 11:34:43 2014
@@ -20,13 +20,13 @@ package org.apache.lucene.uninverting;
 import java.io.IOException;
 import java.util.Collections;
 
+import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.LongField;
-import org.apache.lucene.index.LeafReader;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.SortedSetDocValues;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.uninverting.UninvertingReader.Type;
@@ -36,18 +36,22 @@ import org.apache.lucene.util.NumericUti
 import org.apache.lucene.util.TestUtil;
 
 public class TestUninvertingReader extends LuceneTestCase {
-  
+
+  // nocommit also make back-compat variants of these
   public void testSortedSetInteger() throws IOException {
     Directory dir = newDirectory();
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(null));
-    
-    Document doc = new Document();
-    doc.add(new IntField("foo", 5, Field.Store.NO));
+    FieldTypes fieldTypes = iw.getFieldTypes();
+    fieldTypes.disableSorting("foo");
+    fieldTypes.setMultiValued("foo");
+
+    Document2 doc = iw.newDocument();
+    doc.addInt("foo", 5);
     iw.addDocument(doc);
     
-    doc = new Document();
-    doc.add(new IntField("foo", 5, Field.Store.NO));
-    doc.add(new IntField("foo", -3, Field.Store.NO));
+    doc = iw.newDocument();
+    doc.addInt("foo", 5);
+    doc.addInt("foo", -3);
     iw.addDocument(doc);
     
     iw.forceMerge(1);
@@ -69,10 +73,10 @@ public class TestUninvertingReader exten
     assertEquals(SortedSetDocValues.NO_MORE_ORDS, v.nextOrd());
     
     BytesRef value = v.lookupOrd(0);
-    assertEquals(-3, NumericUtils.prefixCodedToInt(value));
+    assertEquals(-3, Document2.bytesToInt(value));
     
     value = v.lookupOrd(1);
-    assertEquals(5, NumericUtils.prefixCodedToInt(value));
+    assertEquals(5, Document2.bytesToInt(value));
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -81,14 +85,17 @@ public class TestUninvertingReader exten
   public void testSortedSetFloat() throws IOException {
     Directory dir = newDirectory();
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(null));
+    FieldTypes fieldTypes = iw.getFieldTypes();
+    fieldTypes.disableSorting("foo");
+    fieldTypes.setMultiValued("foo");
     
-    Document doc = new Document();
-    doc.add(new IntField("foo", Float.floatToRawIntBits(5f), Field.Store.NO));
+    Document2 doc = iw.newDocument();
+    doc.addFloat("foo", 5f);
     iw.addDocument(doc);
     
-    doc = new Document();
-    doc.add(new IntField("foo", Float.floatToRawIntBits(5f), Field.Store.NO));
-    doc.add(new IntField("foo", Float.floatToRawIntBits(-3f), Field.Store.NO));
+    doc = iw.newDocument();
+    doc.addFloat("foo", 5f);
+    doc.addFloat("foo", -3f);
     iw.addDocument(doc);
     
     iw.forceMerge(1);
@@ -111,10 +118,10 @@ public class TestUninvertingReader exten
     assertEquals(SortedSetDocValues.NO_MORE_ORDS, v.nextOrd());
     
     BytesRef value = v.lookupOrd(0);
-    assertEquals(Float.floatToRawIntBits(-3f), NumericUtils.prefixCodedToInt(value));
+    assertEquals(-3f, Document2.bytesToFloat(value), 0.0f);
     
     value = v.lookupOrd(1);
-    assertEquals(Float.floatToRawIntBits(5f), NumericUtils.prefixCodedToInt(value));
+    assertEquals(5f, Document2.bytesToFloat(value), 0.0f);
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -123,14 +130,17 @@ public class TestUninvertingReader exten
   public void testSortedSetLong() throws IOException {
     Directory dir = newDirectory();
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(null));
+    FieldTypes fieldTypes = iw.getFieldTypes();
+    fieldTypes.disableSorting("foo");
+    fieldTypes.setMultiValued("foo");
     
-    Document doc = new Document();
-    doc.add(new LongField("foo", 5, Field.Store.NO));
+    Document2 doc = iw.newDocument();
+    doc.addLong("foo", 5);
     iw.addDocument(doc);
     
-    doc = new Document();
-    doc.add(new LongField("foo", 5, Field.Store.NO));
-    doc.add(new LongField("foo", -3, Field.Store.NO));
+    doc = iw.newDocument();
+    doc.addLong("foo", 5);
+    doc.addLong("foo", -3);
     iw.addDocument(doc);
     
     iw.forceMerge(1);
@@ -152,10 +162,10 @@ public class TestUninvertingReader exten
     assertEquals(SortedSetDocValues.NO_MORE_ORDS, v.nextOrd());
     
     BytesRef value = v.lookupOrd(0);
-    assertEquals(-3, NumericUtils.prefixCodedToLong(value));
+    assertEquals(-3, Document2.bytesToLong(value));
     
     value = v.lookupOrd(1);
-    assertEquals(5, NumericUtils.prefixCodedToLong(value));
+    assertEquals(5, Document2.bytesToLong(value));
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();
@@ -164,14 +174,17 @@ public class TestUninvertingReader exten
   public void testSortedSetDouble() throws IOException {
     Directory dir = newDirectory();
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(null));
+    FieldTypes fieldTypes = iw.getFieldTypes();
+    fieldTypes.disableSorting("foo");
+    fieldTypes.setMultiValued("foo");
     
-    Document doc = new Document();
-    doc.add(new LongField("foo", Double.doubleToRawLongBits(5d), Field.Store.NO));
+    Document2 doc = iw.newDocument();
+    doc.addDouble("foo", 5d);
     iw.addDocument(doc);
     
-    doc = new Document();
-    doc.add(new LongField("foo", Double.doubleToRawLongBits(5d), Field.Store.NO));
-    doc.add(new LongField("foo", Double.doubleToRawLongBits(-3d), Field.Store.NO));
+    doc = iw.newDocument();
+    doc.addDouble("foo", 5d);
+    doc.addDouble("foo", -3d);
     iw.addDocument(doc);
     
     iw.forceMerge(1);
@@ -193,10 +206,10 @@ public class TestUninvertingReader exten
     assertEquals(SortedSetDocValues.NO_MORE_ORDS, v.nextOrd());
     
     BytesRef value = v.lookupOrd(0);
-    assertEquals(Double.doubleToRawLongBits(-3d), NumericUtils.prefixCodedToLong(value));
+    assertEquals(-3d, Document2.bytesToDouble(value), 0.0);
     
     value = v.lookupOrd(1);
-    assertEquals(Double.doubleToRawLongBits(5d), NumericUtils.prefixCodedToLong(value));
+    assertEquals(5d, Document2.bytesToDouble(value), 0.0);
     TestUtil.checkReader(ir);
     ir.close();
     dir.close();

Modified: lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java Thu Nov 27 11:34:43 2014
@@ -21,6 +21,7 @@ import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
+import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.LeafReader;
@@ -36,8 +37,8 @@ import org.apache.lucene.search.QueryWra
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TermRangeFilter;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BitDocIdSet;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -69,11 +70,11 @@ public class BooleanFilterTest extends L
   }
 
   private void addDoc(RandomIndexWriter writer, String accessRights, String price, String date, String inStock) throws IOException {
-    Document doc = new Document();
-    doc.add(newTextField("accessRights", accessRights, Field.Store.YES));
-    doc.add(newTextField("price", price, Field.Store.YES));
-    doc.add(newTextField("date", date, Field.Store.YES));
-    doc.add(newTextField("inStock", inStock, Field.Store.YES));
+    Document2 doc = writer.newDocument();
+    doc.addLargeText("accessRights", accessRights);
+    doc.addLargeText("price", price);
+    doc.addLargeText("date", date);
+    doc.addLargeText("inStock", inStock);
     writer.addDocument(doc);
   }
 

Modified: lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java Thu Nov 27 11:34:43 2014
@@ -26,12 +26,13 @@ import java.util.Random;
 import java.util.Set;
 
 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.index.LeafReader;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
@@ -66,9 +67,9 @@ public class CommonTermsQueryTest extend
         "this is the end of the universe as we know it",
         "there is the famous restaurant at the end of the universe",};
     for (int i = 0; i < docs.length; i++) {
-      Document doc = new Document();
-      doc.add(newStringField("id", "" + i, Field.Store.YES));
-      doc.add(newTextField("field", docs[i], Field.Store.NO));
+      Document2 doc = w.newDocument();
+      doc.addAtom("id", "" + i);
+      doc.addLargeText("field", docs[i]);
       w.addDocument(doc);
     }
     
@@ -196,9 +197,9 @@ public class CommonTermsQueryTest extend
         "this is the end of the universe as we know it",
         "there is the famous restaurant at the end of the universe",};
     for (int i = 0; i < docs.length; i++) {
-      Document doc = new Document();
-      doc.add(newStringField("id", "" + i, Field.Store.YES));
-      doc.add(newTextField("field", docs[i], Field.Store.NO));
+      Document2 doc = w.newDocument();
+      doc.addAtom("id", "" + i);
+      doc.addLargeText("field", docs[i]);
       w.addDocument(doc);
     }
     
@@ -355,9 +356,9 @@ public class CommonTermsQueryTest extend
         "this is the end of the universe as we know it",
         "there is the famous restaurant at the end of the universe",};
     for (int i = 0; i < docs.length; i++) {
-      Document doc = new Document();
-      doc.add(newStringField("id", "" + i, Field.Store.YES));
-      doc.add(newTextField("field", docs[i], Field.Store.NO));
+      Document2 doc = w.newDocument();
+      doc.addAtom("id", "" + i);
+      doc.addLargeText("field", docs[i]);
       w.addDocument(doc);
     }
 
@@ -532,7 +533,7 @@ public class CommonTermsQueryTest extend
       long seed) throws IOException {
     Random random = new Random(seed);
     // primary source for our data is from linefiledocs, its realistic.
-    LineFileDocs lineFileDocs = new LineFileDocs(random);
+    LineFileDocs lineFileDocs = new LineFileDocs(writer.w, random);
     
     // TODO: we should add other fields that use things like docs&freqs but omit
     // positions,

Modified: lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/TermFilterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/TermFilterTest.java?rev=1642110&r1=1642109&r2=1642110&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/TermFilterTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/queries/src/test/org/apache/lucene/queries/TermFilterTest.java Thu Nov 27 11:34:43 2014
@@ -17,10 +17,16 @@ package org.apache.lucene.queries;
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+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.index.LeafReaderContext;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
@@ -36,11 +42,6 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
 public class TermFilterTest extends LuceneTestCase {
 
   public void testCachability() throws Exception {
@@ -56,8 +57,8 @@ public class TermFilterTest extends Luce
     String fieldName = "field1";
     Directory rd = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), rd);
-    Document doc = new Document();
-    doc.add(newStringField(fieldName, "value1", Field.Store.NO));
+    Document2 doc = w.newDocument();
+    doc.addAtom(fieldName, "value1");
     w.addDocument(doc);
     IndexReader reader = SlowCompositeReaderWrapper.wrap(w.getReader());
     assertTrue(reader.getContext() instanceof LeafReaderContext);
@@ -89,8 +90,8 @@ public class TermFilterTest extends Luce
       String field = "field" + i;
       String string = TestUtil.randomRealisticUnicodeString(random());
       terms.add(new Term(field, string));
-      Document doc = new Document();
-      doc.add(newStringField(field, string, Field.Store.NO));
+      Document2 doc = w.newDocument();
+      doc.addAtom(field, string);
       w.addDocument(doc);
     }
     IndexReader reader = w.getReader();