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/30 12:07:19 UTC

svn commit: r1642535 [13/19] - in /lucene/dev/branches/lucene6005/lucene: analysis/common/src/java/org/apache/lucene/collation/ analysis/common/src/test/org/apache/lucene/analysis/core/ analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/...

Modified: lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java Sun Nov 30 11:07:09 2014
@@ -33,11 +33,7 @@ import java.util.TreeSet;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.SortedDocValuesField;
-import org.apache.lucene.document.SortedSetDocValuesField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.NoMergePolicy;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -55,50 +51,47 @@ public class GroupFacetCollectorTest ext
 
   public void testSimple() throws Exception {
     final String groupField = "hotel";
-    FieldType customType = new FieldType();
-    customType.setStored(true);
 
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(
         random(),
         dir,
         newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
-    boolean useDv = true;
 
     // 0
-    Document doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    addField(doc, "airport", "ams", useDv);
-    addField(doc, "duration", "5", useDv);
+    Document doc = w.newDocument();
+    addField(doc, groupField, "a");
+    addField(doc, "airport", "ams");
+    addField(doc, "duration", "5");
     w.addDocument(doc);
 
     // 1
-    doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    addField(doc, "airport", "dus", useDv);
-    addField(doc, "duration", "10", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "a");
+    addField(doc, "airport", "dus");
+    addField(doc, "duration", "10");
     w.addDocument(doc);
 
     // 2
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    addField(doc, "airport", "ams", useDv);
-    addField(doc, "duration", "10", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "ams");
+    addField(doc, "duration", "10");
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    addField(doc, "airport", "ams", useDv);
-    addField(doc, "duration", "5", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "ams");
+    addField(doc, "duration", "5");
     w.addDocument(doc);
 
     // 4
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    addField(doc, "airport", "ams", useDv);
-    addField(doc, "duration", "5", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "ams");
+    addField(doc, "duration", "5");
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());
@@ -111,8 +104,8 @@ public class GroupFacetCollectorTest ext
       // any of these limits is plenty for the data we have
 
       groupedAirportFacetCollector = createRandomCollector
-        (useDv ? "hotel_dv" : "hotel", 
-         useDv ? "airport_dv" : "airport", null, false);
+        ("hotel_dv",
+         "airport_dv", null, false);
       indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
       int maxOffset = 5;
       airportResult = groupedAirportFacetCollector.mergeSegmentResults
@@ -137,7 +130,7 @@ public class GroupFacetCollectorTest ext
       assertEquals(1, entries.get(0).getCount());
     }
 
-    AbstractGroupFacetCollector groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
+    AbstractGroupFacetCollector groupedDurationFacetCollector = createRandomCollector("hotel_dv", "duration_dv", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
     TermGroupFacetCollector.GroupedFacetResult durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 0, false);
     assertEquals(4, durationResult.getTotalCount());
@@ -151,60 +144,48 @@ public class GroupFacetCollectorTest ext
     assertEquals(2, entries.get(1).getCount());
 
     // 5
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    // missing airport
-    if (useDv) {
-      addField(doc, "airport", "", useDv);
-    }
-    addField(doc, "duration", "5", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "");
+    addField(doc, "duration", "5");
     w.addDocument(doc);
 
     // 6
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    addField(doc, "airport", "bru", useDv);
-    addField(doc, "duration", "10", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "bru");
+    addField(doc, "duration", "10");
     w.addDocument(doc);
 
     // 7
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    addField(doc, "airport", "bru", useDv);
-    addField(doc, "duration", "15", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    addField(doc, "airport", "bru");
+    addField(doc, "duration", "15");
     w.addDocument(doc);
 
     // 8
-    doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    addField(doc, "airport", "bru", useDv);
-    addField(doc, "duration", "10", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "a");
+    addField(doc, "airport", "bru");
+    addField(doc, "duration", "10");
     w.addDocument(doc);
 
     indexSearcher.getIndexReader().close();
     indexSearcher = newSearcher(w.getReader());
-    groupedAirportFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, !useDv);
+    groupedAirportFacetCollector = createRandomCollector("hotel_dv", "airport_dv", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
     airportResult = groupedAirportFacetCollector.mergeSegmentResults(3, 0, true);
     entries = airportResult.getFacetEntries(1, 2);
     assertEquals(2, entries.size());
-    if (useDv) {
-      assertEquals(6, airportResult.getTotalCount());
-      assertEquals(0, airportResult.getTotalMissingCount());
-      assertEquals("bru", entries.get(0).getValue().utf8ToString());
-      assertEquals(2, entries.get(0).getCount());
-      assertEquals("", entries.get(1).getValue().utf8ToString());
-      assertEquals(1, entries.get(1).getCount());
-    } else {
-      assertEquals(5, airportResult.getTotalCount());
-      assertEquals(1, airportResult.getTotalMissingCount());
-      assertEquals("bru", entries.get(0).getValue().utf8ToString());
-      assertEquals(2, entries.get(0).getCount());
-      assertEquals("dus", entries.get(1).getValue().utf8ToString());
-      assertEquals(1, entries.get(1).getCount());
-    }
+    assertEquals(6, airportResult.getTotalCount());
+    assertEquals(0, airportResult.getTotalMissingCount());
+    assertEquals("bru", entries.get(0).getValue().utf8ToString());
+    assertEquals(2, entries.get(0).getCount());
+    assertEquals("", entries.get(1).getValue().utf8ToString());
+    assertEquals(1, entries.get(1).getCount());
 
-    groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
+    groupedDurationFacetCollector = createRandomCollector("hotel_dv", "duration_dv", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
     durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 2, true);
     assertEquals(5, durationResult.getTotalCount());
@@ -216,50 +197,38 @@ public class GroupFacetCollectorTest ext
     assertEquals(2, entries.get(0).getCount());
 
     // 9
-    doc = new Document();
-    addField(doc, groupField, "c", useDv);
-    addField(doc, "airport", "bru", useDv);
-    addField(doc, "duration", "15", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "c");
+    addField(doc, "airport", "bru");
+    addField(doc, "duration", "15");
     w.addDocument(doc);
 
     // 10
-    doc = new Document();
-    addField(doc, groupField, "c", useDv);
-    addField(doc, "airport", "dus", useDv);
-    addField(doc, "duration", "10", useDv);
+    doc = w.newDocument();
+    addField(doc, groupField, "c");
+    addField(doc, "airport", "dus");
+    addField(doc, "duration", "10");
     w.addDocument(doc);
 
     indexSearcher.getIndexReader().close();
     indexSearcher = newSearcher(w.getReader());
-    groupedAirportFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, false);
+    groupedAirportFacetCollector = createRandomCollector("hotel_dv", "airport_dv", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
     airportResult = groupedAirportFacetCollector.mergeSegmentResults(10, 0, false);
     entries = airportResult.getFacetEntries(0, 10);
-    if (useDv) {
-      assertEquals(8, airportResult.getTotalCount());
-      assertEquals(0, airportResult.getTotalMissingCount());
-      assertEquals(4, entries.size());
-      assertEquals("", entries.get(0).getValue().utf8ToString());
-      assertEquals(1, entries.get(0).getCount());
-      assertEquals("ams", entries.get(1).getValue().utf8ToString());
-      assertEquals(2, entries.get(1).getCount());
-      assertEquals("bru", entries.get(2).getValue().utf8ToString());
-      assertEquals(3, entries.get(2).getCount());
-      assertEquals("dus", entries.get(3).getValue().utf8ToString());
-      assertEquals(2, entries.get(3).getCount());
-    } else {
-      assertEquals(7, airportResult.getTotalCount());
-      assertEquals(1, airportResult.getTotalMissingCount());
-      assertEquals(3, entries.size());
-      assertEquals("ams", entries.get(0).getValue().utf8ToString());
-      assertEquals(2, entries.get(0).getCount());
-      assertEquals("bru", entries.get(1).getValue().utf8ToString());
-      assertEquals(3, entries.get(1).getCount());
-      assertEquals("dus", entries.get(2).getValue().utf8ToString());
-      assertEquals(2, entries.get(2).getCount());
-    }
+    assertEquals(8, airportResult.getTotalCount());
+    assertEquals(0, airportResult.getTotalMissingCount());
+    assertEquals(4, entries.size());
+    assertEquals("", entries.get(0).getValue().utf8ToString());
+    assertEquals(1, entries.get(0).getCount());
+    assertEquals("ams", entries.get(1).getValue().utf8ToString());
+    assertEquals(2, entries.get(1).getCount());
+    assertEquals("bru", entries.get(2).getValue().utf8ToString());
+    assertEquals(3, entries.get(2).getCount());
+    assertEquals("dus", entries.get(3).getValue().utf8ToString());
+    assertEquals(2, entries.get(3).getCount());
 
-    groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", "1", false);
+    groupedDurationFacetCollector = createRandomCollector("hotel_dv", "duration_dv", "1", false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
     durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 0, true);
     assertEquals(5, durationResult.getTotalCount());
@@ -279,8 +248,6 @@ public class GroupFacetCollectorTest ext
 
   public void testMVGroupedFacetingWithDeletes() throws Exception {
     final String groupField = "hotel";
-    FieldType customType = new FieldType();
-    customType.setStored(true);
 
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(
@@ -288,58 +255,60 @@ public class GroupFacetCollectorTest ext
         dir,
         newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.INSTANCE));
     boolean useDv = true;
+    FieldTypes fieldTypes = w.getFieldTypes();
+    fieldTypes.setMultiValued("airport");
 
     // Cannot assert this since we use NoMergePolicy:
     w.setDoRandomForceMergeAssert(false);
 
     // 0
-    Document doc = new Document();
-    doc.add(new StringField("x", "x", Field.Store.NO));
+    Document doc = w.newDocument();
+    doc.addAtom("x", "x");
     w.addDocument(doc);
 
     // 1
-    doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("ams")));
+    doc = w.newDocument();
+    addField(doc, groupField, "a");
+    doc.addAtom("airport", new BytesRef("ams"));
     w.addDocument(doc);
 
     w.commit();
     w.deleteDocuments(new TermQuery(new Term("airport", "ams")));
 
     // 2
-    doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("ams")));
+    doc = w.newDocument();
+    addField(doc, groupField, "a");
+    doc.addAtom("airport", new BytesRef("ams"));
     w.addDocument(doc);
 
     // 3
-    doc = new Document();
-    addField(doc, groupField, "a", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("dus")));
+    doc = w.newDocument();
+    addField(doc, groupField, "a");
+    doc.addAtom("airport", new BytesRef("dus"));
     w.addDocument(doc);
 
     // 4
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("ams")));
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    doc.addAtom("airport", new BytesRef("ams"));
     w.addDocument(doc);
 
     // 5
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("ams")));
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    doc.addAtom("airport", new BytesRef("ams"));
     w.addDocument(doc);
 
     // 6
-    doc = new Document();
-    addField(doc, groupField, "b", useDv);
-    doc.add(new SortedSetDocValuesField("airport", new BytesRef("ams")));
+    doc = w.newDocument();
+    addField(doc, groupField, "b");
+    doc.addAtom("airport", new BytesRef("ams"));
     w.addDocument(doc);
     w.commit();
 
     // 7
-    doc = new Document();
-    doc.add(new StringField("x", "x", Field.Store.NO));
+    doc = w.newDocument();
+    doc.addAtom("x", "x");
     w.addDocument(doc);
     w.commit();
 
@@ -362,9 +331,8 @@ public class GroupFacetCollectorTest ext
     dir.close();
   }
 
-  private void addField(Document doc, String field, String value, boolean canUseIDV) {
-    assert canUseIDV;
-    doc.add(new SortedDocValuesField(field + "_dv", new BytesRef(value)));
+  private void addField(Document doc, String field, String value) {
+    doc.addAtom(field + "_dv", new BytesRef(value));
   }
 
   public void testRandom() throws Exception {
@@ -506,38 +474,10 @@ public class GroupFacetCollectorTest ext
         dir,
         newIndexWriterConfig(new MockAnalyzer(random))
     );
-    Document doc = new Document();
-    Document docNoGroup = new Document();
-    Document docNoFacet = new Document();
-    Document docNoGroupNoFacet = new Document();
-    Field group = newStringField("group", "", Field.Store.NO);
-    Field groupDc = new SortedDocValuesField("group", new BytesRef());
-    doc.add(groupDc);
-    docNoFacet.add(groupDc);
-    doc.add(group);
-    docNoFacet.add(group);
-    Field[] facetFields;
-    if (multipleFacetValuesPerDocument == false) {
-      facetFields = new Field[2];
-      facetFields[0] = newStringField("facet", "", Field.Store.NO);
-      doc.add(facetFields[0]);
-      docNoGroup.add(facetFields[0]);
-      facetFields[1] = new SortedDocValuesField("facet", new BytesRef());
-      doc.add(facetFields[1]);
-      docNoGroup.add(facetFields[1]);
-    } else {
-      facetFields = multipleFacetValuesPerDocument ? new Field[2 + random.nextInt(6)] : new Field[1];
-      for (int i = 0; i < facetFields.length; i++) {
-        facetFields[i] = new SortedSetDocValuesField("facet", new BytesRef());
-        doc.add(facetFields[i]);
-        docNoGroup.add(facetFields[i]);
-      }
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    if (multipleFacetValuesPerDocument) {
+      fieldTypes.setMultiValued("facet");
     }
-    Field content = newStringField("content", "", Field.Store.NO);
-    doc.add(content);
-    docNoGroup.add(content);
-    docNoFacet.add(content);
-    docNoGroupNoFacet.add(content);
 
     NavigableSet<String> uniqueFacetValues = new TreeSet<>(new Comparator<String>() {
 
@@ -557,6 +497,7 @@ public class GroupFacetCollectorTest ext
     });
     Map<String, Map<String, Set<String>>> searchTermToFacetToGroups = new HashMap<>();
     int facetWithMostGroups = 0;
+    int numFacetValues = 2 + random.nextInt(6);
     for (int i = 0; i < numDocs; i++) {
       final String groupValue;
       if (random.nextInt(24) == 17) {
@@ -573,6 +514,7 @@ public class GroupFacetCollectorTest ext
       }
       Map<String, Set<String>> facetToGroups = searchTermToFacetToGroups.get(contentStr);
 
+      Document doc = writer.newDocument();
       List<String> facetVals = new ArrayList<>();
       if (multipleFacetValuesPerDocument == false) {
         String facetValue = facetValues.get(random.nextInt(facetValues.size()));
@@ -585,12 +527,12 @@ public class GroupFacetCollectorTest ext
         if (groupsInFacet.size() > facetWithMostGroups) {
           facetWithMostGroups = groupsInFacet.size();
         }
-        facetFields[0].setStringValue(facetValue);
-        facetFields[1].setBytesValue(new BytesRef(facetValue));
         facetVals.add(facetValue);
+        doc.addAtom("facet", facetValue);
       } else {
-        for (Field facetField : facetFields) {
+        for (int j=0;j<numFacetValues;j++) {
           String facetValue = facetValues.get(random.nextInt(facetValues.size()));
+          doc.addAtom("facet", facetValue);
           uniqueFacetValues.add(facetValue);
           if (!facetToGroups.containsKey(facetValue)) {
             facetToGroups.put(facetValue, new HashSet<String>());
@@ -600,33 +542,17 @@ public class GroupFacetCollectorTest ext
           if (groupsInFacet.size() > facetWithMostGroups) {
             facetWithMostGroups = groupsInFacet.size();
           }
-          facetField.setBytesValue(new BytesRef(facetValue));
           facetVals.add(facetValue);
         }
       }
 
       if (VERBOSE) {
-        System.out.println("  doc content=" + contentStr + " group=" + (groupValue == null ? "null" : groupValue) + " facetVals=" + facetVals);
+        System.out.println("  doc content=" + contentStr + " group=" + groupValue + " facetVals=" + facetVals);
       }
 
-      if (groupValue != null) {
-        groupDc.setBytesValue(new BytesRef(groupValue));
-        group.setStringValue(groupValue);
-      } else {
-        // TODO: not true
-        // DV cannot have missing values:
-        groupDc.setBytesValue(new BytesRef());
-      }
-      content.setStringValue(contentStr);
-      if (groupValue == null && facetVals.isEmpty()) {
-        writer.addDocument(docNoGroupNoFacet);
-      } else if (facetVals.isEmpty()) {
-        writer.addDocument(docNoFacet);
-      } else if (groupValue == null) {
-        writer.addDocument(docNoGroup);
-      } else {
-        writer.addDocument(doc);
-      }
+      doc.addAtom("content", contentStr);
+      doc.addAtom("group", groupValue);
+      writer.addDocument(doc);
     }
 
     DirectoryReader reader = writer.getReader();

Modified: lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java Sun Nov 30 11:07:09 2014
@@ -17,13 +17,12 @@ package org.apache.lucene.search.groupin
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.SortedDocValuesField;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queries.function.ValueSource;
@@ -39,10 +38,6 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.mutable.MutableValueStr;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
 public class GroupingSearchTest extends LuceneTestCase {
 
   // Tests some very basic usages...
@@ -50,70 +45,67 @@ public class GroupingSearchTest extends 
 
     final String groupField = "author";
 
-    FieldType customType = new FieldType();
-    customType.setStored(true);
-
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(
         random(),
         dir,
         newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
-    boolean canUseIDV = true;
+
     List<Document> documents = new ArrayList<>();
     // 0
-    Document doc = new Document();
-    addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new TextField("content", "random text", Field.Store.YES));
-    doc.add(new Field("id", "1", customType));
+    Document doc = w.newDocument();
+    addGroupField(doc, groupField, "author1");
+    doc.addLargeText("content", "random text");
+    doc.addStored("id", "1");
     documents.add(doc);
 
     // 1
-    doc = new Document();
-    addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new TextField("content", "some more random text", Field.Store.YES));
-    doc.add(new Field("id", "2", customType));
+    doc = w.newDocument();
+    addGroupField(doc, groupField, "author1");
+    doc.addLargeText("content", "some more random text");
+    doc.addStored("id", "2");
     documents.add(doc);
 
     // 2
-    doc = new Document();
-    addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new TextField("content", "some more random textual data", Field.Store.YES));
-    doc.add(new Field("id", "3", customType));
-    doc.add(new StringField("groupend", "x", Field.Store.NO));
+    doc = w.newDocument();
+    addGroupField(doc, groupField, "author1");
+    doc.addLargeText("content", "some more random textual data");
+    doc.addStored("id", "3");
+    doc.addAtom("groupend", "x");
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
 
     // 3
-    doc = new Document();
-    addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new TextField("content", "some random text", Field.Store.YES));
-    doc.add(new Field("id", "4", customType));
-    doc.add(new StringField("groupend", "x", Field.Store.NO));
+    doc = w.newDocument();
+    addGroupField(doc, groupField, "author2");
+    doc.addLargeText("content", "some random text");
+    doc.addStored("id", "4");
+    doc.addAtom("groupend", "x");
     w.addDocument(doc);
 
     // 4
-    doc = new Document();
-    addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new TextField("content", "some more random text", Field.Store.YES));
-    doc.add(new Field("id", "5", customType));
+    doc = w.newDocument();
+    addGroupField(doc, groupField, "author3");
+    doc.addLargeText("content", "some more random text");
+    doc.addStored("id", "5");
     documents.add(doc);
 
     // 5
-    doc = new Document();
-    addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new TextField("content", "random", Field.Store.YES));
-    doc.add(new Field("id", "6", customType));
-    doc.add(new StringField("groupend", "x", Field.Store.NO));
+    doc = w.newDocument();
+    addGroupField(doc, groupField, "author3");
+    doc.addLargeText("content", "random");
+    doc.addStored("id", "6");
+    doc.addAtom("groupend", "x");
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
 
     // 6 -- no author field
-    doc = new Document();
-    doc.add(new TextField("content", "random word stuck in alot of other text", Field.Store.YES));
-    doc.add(new Field("id", "6", customType));
-    doc.add(new StringField("groupend", "x", Field.Store.NO));
+    doc = w.newDocument();
+    doc.addLargeText("content", "random word stuck in alot of other text");
+    doc.addStored("id", "6");
+    doc.addAtom("groupend", "x");
 
     w.addDocument(doc);
 
@@ -121,7 +113,7 @@ public class GroupingSearchTest extends 
     w.close();
 
     Sort groupSort = Sort.RELEVANCE;
-    GroupingSearch groupingSearch = createRandomGroupingSearch(groupField, groupSort, 5, canUseIDV);
+    GroupingSearch groupingSearch = createRandomGroupingSearch(groupField, groupSort, 5);
 
     TopGroups<?> groups = groupingSearch.search(indexSearcher, null, new TermQuery(new Term("content", "random")), 0, 10);
 
@@ -172,11 +164,8 @@ public class GroupingSearchTest extends 
     dir.close();
   }
 
-  private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new TextField(groupField, value, Field.Store.YES));
-    if (canUseIDV) {
-      doc.add(new SortedDocValuesField(groupField, new BytesRef(value)));
-    }
+  private void addGroupField(Document doc, String groupField, String value) {
+    doc.addAtom(groupField, value);
   }
 
   private void compareGroupValue(String expected, GroupDocs<?> group) {
@@ -202,7 +191,7 @@ public class GroupingSearchTest extends 
     }
   }
 
-  private GroupingSearch createRandomGroupingSearch(String groupField, Sort groupSort, int docsInGroup, boolean canUseIDV) {
+  private GroupingSearch createRandomGroupingSearch(String groupField, Sort groupSort, int docsInGroup) {
     GroupingSearch groupingSearch;
     if (random().nextBoolean()) {
       ValueSource vs = new BytesRefFieldSource(groupField);
@@ -227,9 +216,8 @@ public class GroupingSearchTest extends 
         random(),
         dir,
         newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
-    Document doc = new Document();
-    doc.add(newField("group", "foo", StringField.TYPE_NOT_STORED));
-    doc.add(new SortedDocValuesField("group", new BytesRef("foo")));
+    Document doc = w.newDocument();
+    doc.addAtom("group", new BytesRef("foo"));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());

Modified: lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Sun Nov 30 11:07:09 2014
@@ -23,7 +23,6 @@ import java.util.*;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.*;
 import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexOptions;
 import org.apache.lucene.index.IndexReaderContext;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.MultiDocValues;
@@ -60,60 +59,57 @@ public class TestGrouping extends Lucene
 
     String groupField = "author";
 
-    FieldType customType = new FieldType();
-    customType.setStored(true);
-
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(
                                random(),
                                dir,
                                newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     // 0
-    Document doc = new Document();
+    Document doc = w.newDocument();
     addGroupField(doc, groupField, "author1");
-    doc.add(new TextField("content", "random text", Field.Store.YES));
-    doc.add(new Field("id", "1", customType));
+    doc.addLargeText("content", "random text");
+    doc.addStored("id", "1");
     w.addDocument(doc);
 
     // 1
-    doc = new Document();
+    doc = w.newDocument();
     addGroupField(doc, groupField, "author1");
-    doc.add(new TextField("content", "some more random text", Field.Store.YES));
-    doc.add(new Field("id", "2", customType));
+    doc.addLargeText("content", "some more random text");
+    doc.addStored("id", "2");
     w.addDocument(doc);
 
     // 2
-    doc = new Document();
+    doc = w.newDocument();
     addGroupField(doc, groupField, "author1");
-    doc.add(new TextField("content", "some more random textual data", Field.Store.YES));
-    doc.add(new Field("id", "3", customType));
+    doc.addLargeText("content", "some more random textual data");
+    doc.addStored("id", "3");
     w.addDocument(doc);
 
     // 3
-    doc = new Document();
+    doc = w.newDocument();
     addGroupField(doc, groupField, "author2");
-    doc.add(new TextField("content", "some random text", Field.Store.YES));
-    doc.add(new Field("id", "4", customType));
+    doc.addLargeText("content", "some random text");
+    doc.addStored("id", "4");
     w.addDocument(doc);
 
     // 4
-    doc = new Document();
+    doc = w.newDocument();
     addGroupField(doc, groupField, "author3");
-    doc.add(new TextField("content", "some more random text", Field.Store.YES));
-    doc.add(new Field("id", "5", customType));
+    doc.addLargeText("content", "some more random text");
+    doc.addStored("id", "5");
     w.addDocument(doc);
 
     // 5
-    doc = new Document();
+    doc = w.newDocument();
     addGroupField(doc, groupField, "author3");
-    doc.add(new TextField("content", "random", Field.Store.YES));
-    doc.add(new Field("id", "6", customType));
+    doc.addLargeText("content", "random");
+    doc.addStored("id", "6");
     w.addDocument(doc);
 
     // 6 -- no author field
-    doc = new Document();
-    doc.add(new TextField("content", "random word stuck in alot of other text", Field.Store.YES));
-    doc.add(new Field("id", "6", customType));
+    doc = w.newDocument();
+    doc.addLargeText("content", "random word stuck in alot of other text");
+    doc.addStored("id", "6");
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());
@@ -169,7 +165,7 @@ public class TestGrouping extends Lucene
   }
 
   private void addGroupField(Document doc, String groupField, String value) {
-    doc.add(new SortedDocValuesField(groupField, new BytesRef(value)));
+    doc.addAtom(groupField, new BytesRef(value));
   }
 
   private AbstractFirstPassGroupingCollector<?> createRandomFirstPassCollector(String groupField, Sort groupSort, int topDocs) throws IOException {
@@ -550,14 +546,14 @@ public class TestGrouping extends Lucene
                                                 dir,
                                                 newIndexWriterConfig(new MockAnalyzer(random())));
 
-    final List<List<Document2>> updateDocs = new ArrayList<>();
+    final List<List<Document>> updateDocs = new ArrayList<>();
 
     //System.out.println("TEST: index groups");
     for(BytesRef group : groupValues) {
-      final List<Document2> docs = new ArrayList<>();
+      final List<Document> docs = new ArrayList<>();
       //System.out.println("TEST:   group=" + (group == null ? "null" : group.utf8ToString()));
       for(GroupDoc groupValue : groupMap.get(group)) {
-        Document2 doc = w.newDocument();
+        Document doc = w.newDocument();
         docs.add(doc);
         if (groupValue.group != null) {
           doc.addAtom("group", groupValue.group.utf8ToString());
@@ -577,7 +573,7 @@ public class TestGrouping extends Lucene
       }
     }
 
-    for(List<Document2> docs : updateDocs) {
+    for(List<Document> docs : updateDocs) {
       // Just replaces docs w/ same docs:
       w.updateDocuments(new Term("group", docs.get(0).getString("group")), docs);
     }
@@ -680,7 +676,7 @@ public class TestGrouping extends Lucene
         }
 
         groupDocs[i] = groupDoc;
-        Document2 doc = w.newDocument();
+        Document doc = w.newDocument();
         if (groupDoc.group != null) {
           doc.addAtom("group", groupDoc.group.utf8ToString());
         }

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java Sun Nov 30 11:07:09 2014
@@ -31,7 +31,7 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.document.Document2;
+import org.apache.lucene.document.Document;
 import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.Fields;
 import org.apache.lucene.index.IndexReader;
@@ -67,7 +67,7 @@ public class TokenSources {
    */
 
   public static TokenStream getAnyTokenStream(IndexReader reader, int docId,
-      String field, Document2 document, Analyzer analyzer) throws IOException {
+      String field, Document document, Analyzer analyzer) throws IOException {
     TokenStream ts = null;
 
     Fields vectors = reader.getTermVectors(docId);
@@ -315,11 +315,11 @@ public class TokenSources {
   // convenience method
   public static TokenStream getTokenStream(IndexReader reader, int docId,
       String field, Analyzer analyzer) throws IOException {
-    Document2 doc = reader.document(docId);
+    Document doc = reader.document(docId);
     return getTokenStream(doc, field, analyzer);
   }
   
-  public static TokenStream getTokenStream(Document2 doc, String field,
+  public static TokenStream getTokenStream(Document doc, String field,
       Analyzer analyzer) {
     String contents = doc.getString(field);
     if (contents == null) {

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java Sun Nov 30 11:07:09 2014
@@ -77,6 +77,7 @@ import org.apache.lucene.util.automaton.
  * <b>WARNING</b>: The code is very new and probably still has some exciting bugs!
  * <p>
  * Example usage:
+// nocommit fixme
  * <pre class="prettyprint">
  *   // configure field with offsets at index time
  *   FieldType offsetsType = new FieldType(TextField.TYPE_STORED);

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java Sun Nov 30 11:07:09 2014
@@ -17,9 +17,6 @@ package org.apache.lucene.search.vectorh
  * limitations under the License.
  */
 
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.StoredFieldVisitor;
@@ -60,6 +57,20 @@ public abstract class BaseFragmentsBuild
   private char multiValuedSeparator = ' ';
   private final BoundaryScanner boundaryScanner;
   private boolean discreteMultiValueHighlighting = false;
+
+  protected static class FieldValue {
+    public final String name;
+    public final String value;
+    public final boolean hasTermVectors;
+    public final boolean tokenized;
+
+    public FieldValue(String name, String value, boolean hasTermVectors, boolean tokenized) {
+      this.name = name;
+      this.value = value;
+      this.hasTermVectors = hasTermVectors;
+      this.tokenized = tokenized;
+    }
+  }
   
   protected BaseFragmentsBuilder(){
     this( new String[]{ "<b>" }, new String[]{ "</b>" } );
@@ -124,7 +135,7 @@ public abstract class BaseFragmentsBuild
     }
 
     List<WeightedFragInfo> fragInfos = fieldFragList.getFragInfos();
-    Field[] values = getFields( reader, docId, fieldName );
+    FieldValue[] values = getFields( reader, docId, fieldName );
     if( values.length == 0 ) {
       return null;
     }
@@ -146,16 +157,14 @@ public abstract class BaseFragmentsBuild
     return fragments.toArray( new String[fragments.size()] );
   }
   
-  protected Field[] getFields( IndexReader reader, int docId, final String fieldName) throws IOException {
+  protected FieldValue[] getFields( IndexReader reader, int docId, final String fieldName) throws IOException {
     // according to javadoc, doc.getFields(fieldName) cannot be used with lazy loaded field???
-    final List<Field> fields = new ArrayList<>();
+    final List<FieldValue> fields = new ArrayList<>();
     reader.document(docId, new StoredFieldVisitor() {
         
         @Override
         public void stringField(FieldInfo fieldInfo, String value) {
-          FieldType ft = new FieldType(TextField.TYPE_STORED);
-          ft.setStoreTermVectors(fieldInfo.hasVectors());
-          fields.add(new Field(fieldInfo.name, value, ft));
+          fields.add(new FieldValue(fieldInfo.name, value, fieldInfo.hasVectors(), true));
         }
 
         @Override
@@ -163,10 +172,10 @@ public abstract class BaseFragmentsBuild
           return fieldInfo.name.equals(fieldName) ? Status.YES : Status.NO;
         }
       });
-    return fields.toArray(new Field[fields.size()]);
+    return fields.toArray(new FieldValue[fields.size()]);
   }
 
-  protected String makeFragment( StringBuilder buffer, int[] index, Field[] values, WeightedFragInfo fragInfo,
+  protected String makeFragment( StringBuilder buffer, int[] index, FieldValue[] values, WeightedFragInfo fragInfo,
       String[] preTags, String[] postTags, Encoder encoder ){
     StringBuilder fragment = new StringBuilder();
     final int s = fragInfo.getStartOffset();
@@ -187,15 +196,15 @@ public abstract class BaseFragmentsBuild
     return fragment.toString();
   }
 
-  protected String getFragmentSourceMSO( StringBuilder buffer, int[] index, Field[] values,
+  protected String getFragmentSourceMSO( StringBuilder buffer, int[] index, FieldValue[] values,
       int startOffset, int endOffset, int[] modifiedStartOffset ){
     while( buffer.length() < endOffset && index[0] < values.length ){
-      buffer.append( values[index[0]++].stringValue() );
+      buffer.append( values[index[0]++].value );
       buffer.append( getMultiValuedSeparator() );
     }
     int bufferLength = buffer.length();
     // we added the multi value char to the last buffer, ignore it
-    if (values[index[0] - 1].fieldType().tokenized()) {
+    if (values[index[0] - 1].tokenized) {
       bufferLength--;
     }
     int eo = bufferLength < endOffset ? bufferLength : boundaryScanner.findEndOffset( buffer, endOffset );
@@ -203,10 +212,10 @@ public abstract class BaseFragmentsBuild
     return buffer.substring( modifiedStartOffset[0], eo );
   }
   
-  protected String getFragmentSource( StringBuilder buffer, int[] index, Field[] values,
+  protected String getFragmentSource( StringBuilder buffer, int[] index, FieldValue[] values,
       int startOffset, int endOffset ){
     while( buffer.length() < endOffset && index[0] < values.length ){
-      buffer.append( values[index[0]].stringValue() );
+      buffer.append( values[index[0]].value );
       buffer.append( multiValuedSeparator );
       index[0]++;
     }
@@ -214,26 +223,26 @@ public abstract class BaseFragmentsBuild
     return buffer.substring( startOffset, eo );
   }
 
-  protected List<WeightedFragInfo> discreteMultiValueHighlighting(List<WeightedFragInfo> fragInfos, Field[] fields) {
+  protected List<WeightedFragInfo> discreteMultiValueHighlighting(List<WeightedFragInfo> fragInfos, FieldValue[] fields) {
     Map<String, List<WeightedFragInfo>> fieldNameToFragInfos = new HashMap<>();
-    for (Field field : fields) {
-      fieldNameToFragInfos.put(field.name(), new ArrayList<WeightedFragInfo>());
+    for (FieldValue field : fields) {
+      fieldNameToFragInfos.put(field.name, new ArrayList<WeightedFragInfo>());
     }
 
     fragInfos: for (WeightedFragInfo fragInfo : fragInfos) {
       int fieldStart;
       int fieldEnd = 0;
-      for (Field field : fields) {
-        if (field.stringValue().isEmpty()) {
+      for (FieldValue field : fields) {
+        if (field.value.isEmpty()) {
           fieldEnd++;
           continue;
         }
         fieldStart = fieldEnd;
-        fieldEnd += field.stringValue().length() + 1; // + 1 for going to next field with same name.
+        fieldEnd += field.value.length() + 1; // + 1 for going to next field with same name.
 
         if (fragInfo.getStartOffset() >= fieldStart && fragInfo.getEndOffset() >= fieldStart &&
             fragInfo.getStartOffset() <= fieldEnd && fragInfo.getEndOffset() <= fieldEnd) {
-          fieldNameToFragInfos.get(field.name()).add(fragInfo);
+          fieldNameToFragInfos.get(field.name).add(fragInfo);
           continue fragInfos;
         }
 
@@ -282,7 +291,7 @@ public abstract class BaseFragmentsBuild
           }
         }
         WeightedFragInfo weightedFragInfo = new WeightedFragInfo(fragStart, fragEnd, subInfos, boost);
-        fieldNameToFragInfos.get(field.name()).add(weightedFragInfo);
+        fieldNameToFragInfos.get(field.name).add(weightedFragInfo);
       }
     }
 

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java Sun Nov 30 11:07:09 2014
@@ -40,29 +40,6 @@ public class FieldTermStack {
   private final String fieldName;
   LinkedList<TermInfo> termList = new LinkedList<>();
   
-  //public static void main( String[] args ) throws Exception {
-  //  Analyzer analyzer = new WhitespaceAnalyzer(Version.LATEST);
-  //  QueryParser parser = new QueryParser(Version.LATEST,  "f", analyzer );
-  //  Query query = parser.parse( "a x:b" );
-  //  FieldQuery fieldQuery = new FieldQuery( query, true, false );
-    
-  //  Directory dir = new RAMDirectory();
-  //  IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(Version.LATEST, analyzer));
-  //  Document doc = new Document();
-  //  FieldType ft = new FieldType(TextField.TYPE_STORED);
-  //  ft.setStoreTermVectors(true);
-  //  ft.setStoreTermVectorOffsets(true);
-  //  ft.setStoreTermVectorPositions(true);
-  //  doc.add( new Field( "f", ft, "a a a b b c a b b c d e f" ) );
-  //  doc.add( new Field( "f", ft, "b a b a f" ) );
-  //  writer.addDocument( doc );
-  //  writer.close();
-    
-  //  IndexReader reader = IndexReader.open(dir1);
-  //  new FieldTermStack( reader, 0, "f", fieldQuery );
-  //  reader.close();
-  //}
-
   /**
    * a constructor.
    * 

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java Sun Nov 30 11:07:09 2014
@@ -23,19 +23,16 @@ import org.apache.lucene.analysis.MockAn
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.analysis.Token;
 import org.apache.lucene.analysis.TokenStream;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
-import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.LeafReaderContext;
+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.LeafReaderContext;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.Query;
@@ -45,8 +42,8 @@ import org.apache.lucene.search.spans.Sp
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase;
 
 public class HighlighterPhraseTest extends LuceneTestCase {
   private static final String FIELD = "text";
@@ -55,13 +52,13 @@ public class HighlighterPhraseTest exten
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectorPositions(true);
-      customType.setStoreTermVectors(true);
-      document.add(new Field(FIELD, new TokenStreamConcurrent(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new TokenStreamConcurrent());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -96,14 +93,13 @@ public class HighlighterPhraseTest exten
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectorPositions(true);
-      customType.setStoreTermVectors(true);
-      document.add(new Field(FIELD, new TokenStreamConcurrent(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new TokenStreamConcurrent());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -164,14 +160,13 @@ public class HighlighterPhraseTest exten
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectorPositions(true);
-      customType.setStoreTermVectors(true);
-      document.add(new Field(FIELD, new TokenStreamSparse(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new TokenStreamSparse());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -206,13 +201,13 @@ public class HighlighterPhraseTest exten
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectors(true);
-      document.add(new Field(FIELD, TEXT, customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, TEXT);
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -245,13 +240,13 @@ public class HighlighterPhraseTest exten
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectorPositions(true);
-      customType.setStoreTermVectors(true);
-      document.add(new Field(FIELD, new TokenStreamSparse(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new TokenStreamSparse());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Sun Nov 30 11:07:09 2014
@@ -34,11 +34,7 @@ import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.document.Document2;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -103,7 +99,7 @@ public class HighlighterTest extends Bas
 
 
     for (int i = 0; i < hits.scoreDocs.length; i++) {
-      Document2 doc = searcher.doc(hits.scoreDocs[i].doc);
+      Document doc = searcher.doc(hits.scoreDocs[i].doc);
       String storedField = doc.getString(FIELD_NAME);
 
       TokenStream stream = TokenSources.getAnyTokenStream(searcher
@@ -132,7 +128,7 @@ public class HighlighterTest extends Bas
     QueryScorer scorer = new QueryScorer(query, FIELD_NAME);
     Highlighter highlighter = new Highlighter(scorer);
 
-    Document2 doc = searcher.doc(hits.scoreDocs[0].doc);
+    Document doc = searcher.doc(hits.scoreDocs[0].doc);
     String storedField = doc.getString(FIELD_NAME);
 
     TokenStream stream = TokenSources.getAnyTokenStream(searcher
@@ -188,7 +184,7 @@ public class HighlighterTest extends Bas
     QueryScorer scorer = new QueryScorer(query, FIELD_NAME);
     Highlighter highlighter = new Highlighter(scorer);
 
-    Document2 doc = searcher.doc(hits.scoreDocs[0].doc);
+    Document doc = searcher.doc(hits.scoreDocs[0].doc);
     String storedField = doc.getString(FIELD_NAME);
 
     TokenStream stream = TokenSources.getAnyTokenStream(searcher
@@ -1822,18 +1818,18 @@ public class HighlighterTest extends Bas
     searchIndex();
   }
   
-  private Document doc( String f, String v ){
-    Document doc = new Document();
-    doc.add( new TextField( f, v, Field.Store.YES));
+  private Document doc(IndexWriter writer, String f, String v) {
+    Document doc = writer.newDocument();
+    doc.addLargeText( f, v);
     return doc;
   }
   
   private void makeIndex() throws IOException {
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
-    writer.addDocument( doc( "t_text1", "random words for highlighting tests del" ) );
-    writer.addDocument( doc( "t_text1", "more random words for second field del" ) );
-    writer.addDocument( doc( "t_text1", "random words for highlighting tests del" ) );
-    writer.addDocument( doc( "t_text1", "more random words for second field" ) );
+    writer.addDocument( doc( writer, "t_text1", "random words for highlighting tests del" ) );
+    writer.addDocument( doc( writer, "t_text1", "more random words for second field del" ) );
+    writer.addDocument( doc( writer, "t_text1", "random words for highlighting tests del" ) );
+    writer.addDocument( doc( writer, "t_text1", "more random words for second field" ) );
     writer.forceMerge(1);
     writer.close();
   }
@@ -1858,7 +1854,7 @@ public class HighlighterTest extends Bas
 
     TopDocs hits = searcher.search(query, null, 10);
     for( int i = 0; i < hits.totalHits; i++ ){
-      Document2 doc = searcher.doc(hits.scoreDocs[i].doc);
+      Document doc = searcher.doc(hits.scoreDocs[i].doc);
       String result = h.getBestFragment( a, "t_text1", doc.getString("t_text1"));
       if (VERBOSE) System.out.println("result:" +  result);
       assertEquals("more <B>random</B> words for second field", result);
@@ -1941,7 +1937,7 @@ public class HighlighterTest extends Bas
     for (String text : texts) {
       addDoc(writer, text);
     }
-    Document2 doc = writer.newDocument();
+    Document doc = writer.newDocument();
     doc.addInt(NUMERIC_FIELD_NAME, 1);
     writer.addDocument(doc);
 
@@ -1957,8 +1953,8 @@ public class HighlighterTest extends Bas
     doc.addInt(NUMERIC_FIELD_NAME, 7);
     writer.addDocument(doc);
 
-    Document childDoc = doc(FIELD_NAME, "child document");
-    Document parentDoc = doc(FIELD_NAME, "parent document");
+    Document childDoc = doc(writer, FIELD_NAME, "child document");
+    Document parentDoc = doc(writer, FIELD_NAME, "parent document");
     writer.addDocuments(Arrays.asList(childDoc, parentDoc));
     
     writer.forceMerge(1);
@@ -1975,12 +1971,9 @@ public class HighlighterTest extends Bas
     super.tearDown();
   }
   private void addDoc(IndexWriter writer, String text) throws IOException {
-    Document d = new Document();
-
-    Field f = new TextField(FIELD_NAME, text, Field.Store.YES);
-    d.add(f);
+    Document d = writer.newDocument();
+    d.addLargeText(FIELD_NAME, text);
     writer.addDocument(d);
-
   }
 
   private static Token createToken(String term, int start, int offset)

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java Sun Nov 30 11:07:09 2014
@@ -27,9 +27,7 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.FieldTypes;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -93,12 +91,12 @@ public class TokenSourcesTest extends Lu
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(null));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectors(true);
-      customType.setStoreTermVectorOffsets(true);
-      document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new OverlappingTokenStream());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -137,13 +135,13 @@ public class TokenSourcesTest extends Lu
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(null));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectors(true);
-      customType.setStoreTermVectorOffsets(true);
-      customType.setStoreTermVectorPositions(true);
-      document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new OverlappingTokenStream());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -182,12 +180,12 @@ public class TokenSourcesTest extends Lu
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(null));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectors(true);
-      customType.setStoreTermVectorOffsets(true);
-      document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new OverlappingTokenStream());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -226,12 +224,12 @@ public class TokenSourcesTest extends Lu
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(null));
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorOffsets(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectors(true);
-      customType.setStoreTermVectorOffsets(true);
-      document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new OverlappingTokenStream());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -269,13 +267,13 @@ public class TokenSourcesTest extends Lu
     final Directory directory = newDirectory();
     final IndexWriter indexWriter = new IndexWriter(directory,
         newIndexWriterConfig(null));
+
+    FieldTypes fieldTypes = indexWriter.getFieldTypes();
+    fieldTypes.enableTermVectors(FIELD);
+    fieldTypes.enableTermVectorPositions(FIELD);
     try {
-      final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_NOT_STORED);
-      customType.setStoreTermVectors(true);
-      customType.setStoreTermVectorOffsets(false);
-      customType.setStoreTermVectorPositions(true);
-      document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
+      final Document document = indexWriter.newDocument();
+      document.addLargeText(FIELD, new OverlappingTokenStream());
       indexWriter.addDocument(document);
     } finally {
       indexWriter.close();
@@ -312,11 +310,6 @@ public class TokenSourcesTest extends Lu
   public void testPayloads() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    FieldType myFieldType = new FieldType(TextField.TYPE_NOT_STORED);
-    myFieldType.setStoreTermVectors(true);
-    myFieldType.setStoreTermVectorOffsets(true);
-    myFieldType.setStoreTermVectorPositions(true);
-    myFieldType.setStoreTermVectorPayloads(true);
 
     curOffset = 0;
 
@@ -327,8 +320,13 @@ public class TokenSourcesTest extends Lu
       getToken("high")
     };
 
-    Document doc = new Document();
-    doc.add(new Field("field", new CannedTokenStream(tokens), myFieldType));
+    FieldTypes fieldTypes = writer.getFieldTypes();
+    fieldTypes.enableTermVectors("field");
+    fieldTypes.enableTermVectorOffsets("field");
+    fieldTypes.enableTermVectorPositions("field");
+    fieldTypes.enableTermVectorPayloads("field");
+    Document doc = writer.newDocument();
+    doc.addLargeText("field", new CannedTokenStream(tokens));
     writer.addDocument(doc);
   
     IndexReader reader = writer.getReader();

Modified: lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestMultiTermHighlighting.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestMultiTermHighlighting.java?rev=1642535&r1=1642534&r2=1642535&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestMultiTermHighlighting.java (original)
+++ lucene/dev/branches/lucene6005/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestMultiTermHighlighting.java Sun Nov 30 11:07:09 2014
@@ -21,10 +21,6 @@ import org.apache.lucene.analysis.Analyz
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexOptions;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -69,15 +65,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -121,15 +114,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -173,15 +163,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -225,15 +212,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -286,15 +270,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -396,15 +377,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -449,15 +427,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
 
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
 
     IndexReader ir = iw.getReader();
@@ -492,15 +467,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
 
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
 
     IndexReader ir = iw.getReader();
@@ -533,15 +505,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -575,15 +544,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -616,15 +582,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -658,15 +621,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -700,15 +660,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -743,15 +700,12 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("This is a test.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "This is a test.");
     iw.addDocument(doc);
-    body.setStringValue("Test a one sentence document.");
+
+    doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
     
     IndexReader ir = iw.getReader();
@@ -787,15 +741,10 @@ public class TestMultiTermHighlighting e
     iwc.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType offsetsType = new FieldType(TextField.TYPE_STORED);
-    offsetsType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
-    Field body = new Field("body", "", offsetsType);
-    Document doc = new Document();
-    doc.add(body);
-    
-    body.setStringValue("Test a one sentence document.");
+    Document doc = iw.newDocument();
+    doc.addLargeText("body", "Test a one sentence document.");
     iw.addDocument(doc);
-    
+
     IndexReader ir = iw.getReader();
     iw.close();