Index: lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
===================================================================
--- lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(revision 1347990)
+++ lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(working copy)
@@ -38,16 +38,16 @@
   // One resume...
   private Document makeResume(String name, String country) {
     Document resume = new Document();
-    resume.add(newField("docType", "resume", StringField.TYPE_UNSTORED));
-    resume.add(newField("name", name, StringField.TYPE_STORED));
-    resume.add(newField("country", country, StringField.TYPE_UNSTORED));
+    resume.add(newField("docType", "resume", StringField.TYPE));
+    resume.add(newField("name", name, StoredStringField.TYPE));
+    resume.add(newField("country", country, StringField.TYPE));
     return resume;
   }
 
   // ... has multiple jobs
   private Document makeJob(String skill, int year) {
     Document job = new Document();
-    job.add(newField("skill", skill, StringField.TYPE_STORED));
+    job.add(newField("skill", skill, StoredStringField.TYPE));
     job.add(new IntField("year", year));
     job.add(new StoredField("year", year));
     return job;
@@ -56,7 +56,7 @@
   // ... has multiple qualifications
   private Document makeQualification(String qualification, int year) {
     Document job = new Document();
-    job.add(newField("qualification", qualification, StringField.TYPE_STORED));
+    job.add(newField("qualification", qualification, StoredStringField.TYPE));
     job.add(new IntField("year", year));
     return job;
   }
@@ -341,23 +341,23 @@
     for(int parentDocID=0;parentDocID<numParentDocs;parentDocID++) {
       Document parentDoc = new Document();
       Document parentJoinDoc = new Document();
-      Field id = newField("parentID", ""+parentDocID, StringField.TYPE_STORED);
+      Field id = newField("parentID", ""+parentDocID, StoredStringField.TYPE);
       parentDoc.add(id);
       parentJoinDoc.add(id);
-      parentJoinDoc.add(newField("isParent", "x", StringField.TYPE_UNSTORED));
+      parentJoinDoc.add(newField("isParent", "x", StringField.TYPE));
       for(int field=0;field<parentFields.length;field++) {
         if (random().nextDouble() < 0.9) {
           Field f = newField("parent" + field,
                              parentFields[field][random().nextInt(parentFields[field].length)],
-                             StringField.TYPE_UNSTORED);
+                             StringField.TYPE);
           parentDoc.add(f);
           parentJoinDoc.add(f);
         }
       }
 
       if (doDeletes) {
-        parentDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
-        parentJoinDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
+        parentDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
+        parentJoinDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
       }
 
       final List<Document> joinDocs = new ArrayList<Document>();
@@ -381,7 +381,7 @@
         Document joinChildDoc = new Document();
         joinDocs.add(joinChildDoc);
 
-        Field childID = newField("childID", ""+childDocID, StringField.TYPE_STORED);
+        Field childID = newField("childID", ""+childDocID, StoredStringField.TYPE);
         childDoc.add(childID);
         joinChildDoc.add(childID);
 
@@ -389,7 +389,7 @@
           if (random().nextDouble() < 0.9) {
             Field f = newField("child" + childFieldID,
                                childFields[childFieldID][random().nextInt(childFields[childFieldID].length)],
-                               StringField.TYPE_UNSTORED);
+                               StringField.TYPE);
             childDoc.add(f);
             joinChildDoc.add(f);
           }
@@ -408,7 +408,7 @@
         }
 
         if (doDeletes) {
-          joinChildDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
+          joinChildDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
         }
 
         w.addDocument(childDoc);
@@ -942,9 +942,9 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document childDoc = new Document();
-    childDoc.add(newField("child", "1", StringField.TYPE_UNSTORED));
+    childDoc.add(newField("child", "1", StringField.TYPE));
     Document parentDoc = new Document();
-    parentDoc.add(newField("parent", "1", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "1", StringField.TYPE));
     w.addDocuments(Arrays.asList(childDoc, parentDoc));
     IndexReader r = w.getReader();
     w.close();
@@ -966,16 +966,16 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(new LogDocMergePolicy()));
     Document parentDoc = new Document();
-    parentDoc.add(newField("parent", "1", StringField.TYPE_UNSTORED));
-    parentDoc.add(newField("isparent", "yes", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "1", StringField.TYPE));
+    parentDoc.add(newField("isparent", "yes", StringField.TYPE));
     w.addDocuments(Arrays.asList(parentDoc));
 
     // Add another doc so scorer is not null
     parentDoc = new Document();
-    parentDoc.add(newField("parent", "2", StringField.TYPE_UNSTORED));
-    parentDoc.add(newField("isparent", "yes", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "2", StringField.TYPE));
+    parentDoc.add(newField("isparent", "yes", StringField.TYPE));
     Document childDoc = new Document();
-    childDoc.add(newField("child", "2", StringField.TYPE_UNSTORED));
+    childDoc.add(newField("child", "2", StringField.TYPE));
     w.addDocuments(Arrays.asList(childDoc, parentDoc));
 
     // Need single seg:
Index: lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
===================================================================
--- lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java	(revision 1347990)
+++ lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java	(working copy)
@@ -67,45 +67,45 @@
 
     // 0
     Document doc = new Document();
-    doc.add(new Field("description", "random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "name1", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "random text", TextField.TYPE));
+    doc.add(new Field("name", "name1", TextField.TYPE));
+    doc.add(new Field(idField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field("price", "10.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "10.0", TextField.TYPE));
+    doc.add(new Field(idField, "2", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field("price", "20.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "3", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "20.0", TextField.TYPE));
+    doc.add(new Field(idField, "3", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
-    doc.add(new Field("description", "more random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "name2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "more random text", TextField.TYPE));
+    doc.add(new Field("name", "name2", TextField.TYPE));
+    doc.add(new Field(idField, "4", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
     // 4
     doc = new Document();
-    doc.add(new Field("price", "10.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "5", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "10.0", TextField.TYPE));
+    doc.add(new Field(idField, "5", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field("price", "20.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "6", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "20.0", TextField.TYPE));
+    doc.add(new Field(idField, "6", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());
@@ -149,45 +149,45 @@
 
     // 0
     Document doc = new Document();
-    doc.add(new Field("description", "A random movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "Movie 1", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "A random movie", TextField.TYPE));
+    doc.add(new Field("name", "Movie 1", TextField.TYPE));
+    doc.add(new Field(idField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field("subtitle", "The first subtitle of this movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "The first subtitle of this movie", TextField.TYPE));
+    doc.add(new Field(idField, "2", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field("subtitle", "random subtitle; random event movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "3", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "random subtitle; random event movie", TextField.TYPE));
+    doc.add(new Field(idField, "3", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
-    doc.add(new Field("description", "A second random movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "Movie 2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "A second random movie", TextField.TYPE));
+    doc.add(new Field("name", "Movie 2", TextField.TYPE));
+    doc.add(new Field(idField, "4", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
     // 4
     doc = new Document();
-    doc.add(new Field("subtitle", "a very random event happened during christmas night", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "5", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "a very random event happened during christmas night", TextField.TYPE));
+    doc.add(new Field(idField, "5", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field("subtitle", "movie end movie test 123 test 123 random", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "6", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "movie end movie test 123 test 123 random", TextField.TYPE));
+    doc.add(new Field(idField, "6", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());
@@ -381,8 +381,8 @@
       int randomI = random().nextInt(context.randomUniqueValues.length);
       String value = context.randomUniqueValues[randomI];
       Document document = new Document();
-      document.add(newField(random(), "id", id, TextField.TYPE_UNSTORED));
-      document.add(newField(random(), "value", value, TextField.TYPE_UNSTORED));
+      document.add(newField(random(), "id", id, TextField.TYPE));
+      document.add(newField(random(), "value", value, TextField.TYPE));
 
       boolean from = context.randomFrom[randomI];
       int numberOfLinkValues = multipleValuesPerDocument ? 2 + random().nextInt(10) : 1;
@@ -400,7 +400,7 @@
 
           context.fromDocuments.get(linkValue).add(docs[i]);
           context.randomValueFromDocs.get(value).add(docs[i]);
-          document.add(newField(random(), "from", linkValue, TextField.TYPE_UNSTORED));
+          document.add(newField(random(), "from", linkValue, TextField.TYPE));
         } else {
           if (!context.toDocuments.containsKey(linkValue)) {
             context.toDocuments.put(linkValue, new ArrayList<RandomDoc>());
@@ -411,7 +411,7 @@
 
           context.toDocuments.get(linkValue).add(docs[i]);
           context.randomValueToDocs.get(value).add(docs[i]);
-          document.add(newField(random(), "to", linkValue, TextField.TYPE_UNSTORED));
+          document.add(newField(random(), "to", linkValue, TextField.TYPE));
         }
       }
 
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java	(working copy)
@@ -218,7 +218,7 @@
   }
 
   private void addField(Document doc, String field, String value, boolean canUseIDV) {
-    doc.add(new Field(field, value, StringField.TYPE_UNSTORED));
+    doc.add(new Field(field, value, StringField.TYPE));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(field, new BytesRef(value)));
     }
@@ -367,7 +367,7 @@
     Document docNoGroup = new Document();
     Document docNoFacet = new Document();
     Document docNoGroupNoFacet = new Document();
-    Field group = newField("group", "", StringField.TYPE_UNSTORED);
+    Field group = newField("group", "", StringField.TYPE);
     Field groupDc = new SortedBytesDocValuesField("group", new BytesRef());
     if (useDv) {
       doc.add(groupDc);
@@ -378,7 +378,7 @@
     Field[] facetFields;
     if (useDv) {
       facetFields = new Field[2];
-      facetFields[0] = newField("facet", "", StringField.TYPE_UNSTORED);
+      facetFields[0] = newField("facet", "", StringField.TYPE);
       doc.add(facetFields[0]);
       docNoGroup.add(facetFields[0]);
       facetFields[1] = new SortedBytesDocValuesField("facet", new BytesRef());
@@ -387,12 +387,12 @@
     } else {
       facetFields = multipleFacetValuesPerDocument ? new Field[2 + random.nextInt(6)] : new Field[1];
       for (int i = 0; i < facetFields.length; i++) {
-        facetFields[i] = newField("facet", "", StringField.TYPE_UNSTORED);
+        facetFields[i] = newField("facet", "", StringField.TYPE);
         doc.add(facetFields[i]);
         docNoGroup.add(facetFields[i]);
       }
     }
-    Field content = newField("content", "", StringField.TYPE_UNSTORED);
+    Field content = newField("content", "", StringField.TYPE);
     doc.add(content);
     docNoGroup.add(content);
     docNoFacet.add(content);
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java	(working copy)
@@ -67,55 +67,55 @@
     Document doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "1", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "random text", TextField.TYPE));
+    doc.add(new Field("id", "1", StringField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "some more random text blob", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "2", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random text blob", TextField.TYPE));
+    doc.add(new Field("id", "2", StringField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "2", dvType);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "3", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE));
+    doc.add(new Field("id", "3", StringField.TYPE));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
     doc = new Document();
     addField(doc, groupField, "2", dvType);
-    doc.add(new Field("content", "some random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "4", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE));
+    doc.add(new Field("id", "4", StringField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addField(doc, groupField, "3", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "5", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("id", "5", StringField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addField(doc, groupField, "3", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "random blob", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "6", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "random blob", TextField.TYPE));
+    doc.add(new Field("id", "6", StringField.TYPE));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random word stuck in alot of other text"));
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("id", "6", StringField.TYPE_UNSTORED));
+    doc.add(new Field("id", "6", StringField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());
@@ -316,7 +316,7 @@
   }
 
   private void addField(Document doc, String field, String value, DocValues.Type type) {
-    doc.add(new Field(field, value, StringField.TYPE_UNSTORED));
+    doc.add(new Field(field, value, StringField.TYPE));
     if (type == null) {
       return;
     }
@@ -450,14 +450,14 @@
       countsVals.add(countValue);
 
       Document doc = new Document();
-      doc.add(new Field("id", String.format("%09d", i), StringField.TYPE_UNSTORED));
+      doc.add(new Field("id", String.format("%09d", i), StringField.TYPE));
       if (groupValue != null) {
         addField(doc, groupField, groupValue, dvType);
       }
       if (countValue != null) {
         addField(doc, countField, countValue, dvType);
       }
-      doc.add(new Field("content", content, TextField.TYPE_UNSTORED));
+      doc.add(new Field("content", content, TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java	(working copy)
@@ -77,48 +77,48 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random text"));
     doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text"));
     doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random textual data"));
     doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some random text"));
     doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text"));
     doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random"));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random word stuck in alot of other text"));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
@@ -174,7 +174,7 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new StoredTextField(groupField, value));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
@@ -582,7 +582,7 @@
 
     final List<List<Document>> updateDocs = new ArrayList<List<Document>>();
 
-    FieldType groupEndType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType groupEndType = new FieldType(StringField.TYPE);
     groupEndType.setIndexOptions(IndexOptions.DOCS_ONLY);
     groupEndType.setOmitNorms(true);
 
@@ -594,12 +594,12 @@
         Document doc = new Document();
         docs.add(doc);
         if (groupValue.group != null) {
-          doc.add(newField("group", groupValue.group.utf8ToString(), StringField.TYPE_UNSTORED));
+          doc.add(newField("group", groupValue.group.utf8ToString(), StringField.TYPE));
         }
-        doc.add(newField("sort1", groupValue.sort1.utf8ToString(), StringField.TYPE_UNSTORED));
-        doc.add(newField("sort2", groupValue.sort2.utf8ToString(), StringField.TYPE_UNSTORED));
+        doc.add(newField("sort1", groupValue.sort1.utf8ToString(), StringField.TYPE));
+        doc.add(newField("sort2", groupValue.sort2.utf8ToString(), StringField.TYPE));
         doc.add(new IntField("id", groupValue.id));
-        doc.add(newField("content", groupValue.content, TextField.TYPE_UNSTORED));
+        doc.add(newField("content", groupValue.content, TextField.TYPE));
         //System.out.println("TEST:     doc content=" + groupValue.content + " group=" + (groupValue.group == null ? "null" : groupValue.group.utf8ToString()) + " sort1=" + groupValue.sort1.utf8ToString() + " id=" + groupValue.id);
       }
       // So we can pull filter marking last doc in block:
@@ -713,15 +713,15 @@
         doc.add(idvGroupField);
       }
 
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newField("group", "", StringField.TYPE);
       doc.add(group);
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newField("sort1", "", StringField.TYPE);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newField("sort2", "", StringField.TYPE);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newField("content", "", TextField.TYPE);
       doc.add(content);
       docNoGroup.add(content);
       IntField id = new IntField("id", 0);
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java	(working copy)
@@ -55,21 +55,21 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random text"));
     doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text blob", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text blob"));
     doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random textual data"));
     doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
@@ -77,27 +77,27 @@
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some random text"));
     doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text"));
     doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random blob", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random blob"));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random word stuck in alot of other text"));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
@@ -121,7 +121,7 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new StoredTextField(groupField, value));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java	(working copy)
@@ -56,23 +56,23 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random text"));
     doc.add(new Field("id", "1", customType));
     documents.add(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text"));
     doc.add(new Field("id", "2", customType));
     documents.add(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random textual data"));
     doc.add(new Field("id", "3", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
@@ -80,33 +80,33 @@
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some random text"));
     doc.add(new Field("id", "4", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "some more random text"));
     doc.add(new Field("id", "5", customType));
     documents.add(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random"));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "random word stuck in alot of other text"));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
 
     w.addDocument(doc);
 
@@ -166,7 +166,7 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new StoredTextField(groupField, value));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java	(revision 1347990)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java	(working copy)
@@ -60,56 +60,56 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("content", "random text", StoredTextField.TYPE));
+    doc.add(newField("id", "1", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "some more random text blob", TextField.TYPE_STORED));
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random text blob", StoredTextField.TYPE));
+    doc.add(newField("id", "2", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "some more random textual data", TextField.TYPE_STORED));
-    doc.add(newField("id", "3", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random textual data", StoredTextField.TYPE));
+    doc.add(newField("id", "3", StoredStringField.TYPE));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV, valueType);
-    doc.add(newField("content", "some random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "4", StringField.TYPE_STORED));
+    doc.add(newField("content", "some random text", StoredTextField.TYPE));
+    doc.add(newField("id", "4", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV, valueType);
-    doc.add(newField("content", "some more random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "5", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random text", StoredTextField.TYPE));
+    doc.add(newField("id", "5", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV, valueType);
-    doc.add(newField("content", "random blob", TextField.TYPE_STORED));
-    doc.add(newField("id", "6", StringField.TYPE_STORED));
+    doc.add(newField("content", "random blob", StoredTextField.TYPE));
+    doc.add(newField("id", "6", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
-    doc.add(newField("id", "6", StringField.TYPE_STORED));
+    doc.add(newField("content", "random word stuck in alot of other text", StoredTextField.TYPE));
+    doc.add(newField("id", "6", StoredStringField.TYPE));
     w.addDocument(doc);
 
     // 7 -- no author field
     doc = new Document();
-    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
-    doc.add(newField("id", "7", StringField.TYPE_STORED));
+    doc.add(newField("content", "random word stuck in alot of other text", StoredTextField.TYPE));
+    doc.add(newField("id", "7", StoredStringField.TYPE));
     w.addDocument(doc);
 
     IndexReader reader = w.getReader();
@@ -208,7 +208,7 @@
 
       Document doc = new Document();
       Document docNoGroup = new Document();
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newField("group", "", StringField.TYPE);
       doc.add(group);
       Field valuesField = null;
       if (canUseIDV) {
@@ -227,16 +227,16 @@
         }
         doc.add(valuesField);
       }
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newField("sort1", "", StringField.TYPE);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newField("sort2", "", StringField.TYPE);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field sort3 = newField("sort3", "", StringField.TYPE_UNSTORED);
+      Field sort3 = newField("sort3", "", StringField.TYPE);
       doc.add(sort3);
       docNoGroup.add(sort3);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newField("content", "", TextField.TYPE);
       doc.add(content);
       docNoGroup.add(content);
       IntField id = new IntField("id", 0);
@@ -539,7 +539,7 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV, Type valueType) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new StoredTextField(groupField, value));
     if (canUseIDV) {
       Field valuesField = null;
       switch(valueType) {
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java	(revision 1347990)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java	(working copy)
@@ -23,12 +23,13 @@
 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.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.CorruptIndexException;
@@ -41,14 +42,13 @@
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.TopDocs;
-
 import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
+import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.FixedBitSet;
 
 public class HighlighterPhraseTest extends LuceneTestCase {
   private static final String FIELD = "text";
@@ -60,7 +60,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -103,7 +103,7 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -174,7 +174,7 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -217,7 +217,7 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectors(true);
       document.add(new Field(FIELD, TEXT, customType));
@@ -256,7 +256,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java	(revision 1347990)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java	(working copy)
@@ -93,7 +93,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
@@ -137,7 +137,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
@@ -182,7 +182,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
@@ -227,7 +227,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(revision 1347990)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(working copy)
@@ -38,7 +38,7 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -1622,7 +1622,7 @@
   
   private Document doc( String f, String v ){
     Document doc = new Document();
-    doc.add( new Field( f, v, TextField.TYPE_STORED));
+    doc.add( new StoredTextField( f, v));
     return doc;
   }
   
@@ -1775,7 +1775,7 @@
   private void addDoc(IndexWriter writer, String text) throws IOException {
     Document d = new Document();
 
-    Field f = new Field(FIELD_NAME, text, TextField.TYPE_STORED);
+    Field f = new StoredTextField(FIELD_NAME, text);
     d.add(f);
     writer.addDocument(d);
 
Index: lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java	(revision 1347990)
+++ lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java	(working copy)
@@ -22,7 +22,6 @@
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -139,7 +138,7 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzerW).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
Index: lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java	(revision 1347990)
+++ lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java	(working copy)
@@ -31,7 +31,7 @@
 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.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -355,7 +355,7 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
@@ -373,7 +373,7 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzerK).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
Index: lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
===================================================================
--- lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java	(revision 1347990)
+++ lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java	(working copy)
@@ -48,7 +48,7 @@
   //  Directory dir = new RAMDirectory();
   //  IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer));
   //  Document doc = new Document();
-  //  FieldType ft = new FieldType(TextField.TYPE_STORED);
+  //  FieldType ft = new FieldType(StoredTextField.TYPE);
   //  ft.setStoreTermVectors(true);
   //  ft.setStoreTermVectorOffsets(true);
   //  ft.setStoreTermVectorPositions(true);
Index: lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
===================================================================
--- lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java	(revision 1347990)
+++ lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java	(working copy)
@@ -23,7 +23,7 @@
 
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.StoredFieldVisitor;
@@ -126,7 +126,7 @@
         
         @Override
         public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-          FieldType ft = new FieldType(TextField.TYPE_STORED);
+          FieldType ft = new FieldType(StoredTextField.TYPE);
           ft.setStoreTermVectors(fieldInfo.hasVectors());
           fields.add(new Field(fieldInfo.name, value, ft));
         }
Index: lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(revision 1347990)
+++ lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(working copy)
@@ -17,29 +17,29 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.search.DocIdSet;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.Filter;
+import org.apache.lucene.search.QueryWrapperFilter;
+import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TermRangeFilter;
-import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.QueryWrapperFilter;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 public class BooleanFilterTest extends LuceneTestCase {
   private Directory directory;
   private AtomicReader reader;
@@ -69,10 +69,10 @@
 
   private void addDoc(RandomIndexWriter writer, String accessRights, String price, String date, String inStock) throws IOException {
     Document doc = new Document();
-    doc.add(newField("accessRights", accessRights, TextField.TYPE_STORED));
-    doc.add(newField("price", price, TextField.TYPE_STORED));
-    doc.add(newField("date", date, TextField.TYPE_STORED));
-    doc.add(newField("inStock", inStock, TextField.TYPE_STORED));
+    doc.add(newField("accessRights", accessRights, StoredTextField.TYPE));
+    doc.add(newField("price", price, StoredTextField.TYPE));
+    doc.add(newField("date", date, StoredTextField.TYPE));
+    doc.add(newField("inStock", inStock, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java	(revision 1347990)
+++ lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java	(working copy)
@@ -5,9 +5,10 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.queries.function.valuesource.ByteFieldSource;
 import org.apache.lucene.queries.function.valuesource.FloatFieldSource;
 import org.apache.lucene.queries.function.valuesource.IntFieldSource;
@@ -128,14 +129,14 @@
     Field f;
     int scoreAndID = i + 1;
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
     customType.setOmitNorms(true);
     
     f = newField(ID_FIELD, id2String(scoreAndID), customType); // for debug purposes
     d.add(f);
 
-    FieldType customType2 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
     customType2.setOmitNorms(true);
     f = newField(TEXT_FIELD, "text of doc" + scoreAndID + textLine(i), customType2); // for regular search
     d.add(f);
Index: lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(revision 1347990)
+++ lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(working copy)
@@ -26,7 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.BooleanClause;
@@ -65,7 +65,7 @@
   
   private void addDoc(RandomIndexWriter writer, String text) throws IOException {
     Document doc = new Document();
-    doc.add(newField("text", text, TextField.TYPE_STORED));
+    doc.add(newField("text", text, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
   
Index: lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(revision 1347990)
+++ lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(working copy)
@@ -20,7 +20,7 @@
 import java.util.HashSet;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -58,7 +58,7 @@
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
       int term = i * 10; //terms are units of 10;
-      doc.add(newField(fieldName, "" + term, StringField.TYPE_STORED));
+      doc.add(newField(fieldName, "" + term, StoredStringField.TYPE));
       w.addDocument(doc);
     }
     IndexReader reader = new SlowCompositeReaderWrapper(w.getReader());
@@ -92,7 +92,7 @@
     Directory rd1 = newDirectory();
     RandomIndexWriter w1 = new RandomIndexWriter(random(), rd1);
     Document doc = new Document();
-    doc.add(newField(fieldName, "content1", StringField.TYPE_STORED));
+    doc.add(newField(fieldName, "content1", StoredStringField.TYPE));
     w1.addDocument(doc);
     IndexReader reader1 = w1.getReader();
     w1.close();
@@ -101,7 +101,7 @@
     Directory rd2 = newDirectory();
     RandomIndexWriter w2 = new RandomIndexWriter(random(), rd2);
     doc = new Document();
-    doc.add(newField(fieldName, "content2", StringField.TYPE_STORED));
+    doc.add(newField(fieldName, "content2", StoredStringField.TYPE));
     w2.addDocument(doc);
     IndexReader reader2 = w2.getReader();
     w2.close();
Index: lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java	(revision 1347990)
+++ lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java	(working copy)
@@ -21,7 +21,7 @@
 import java.util.GregorianCalendar;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -62,9 +62,9 @@
 
     for (int i = 0; i < MAX; i++) {
       Document doc = new Document();
-      doc.add(newField("key", "" + (i + 1), StringField.TYPE_STORED));
-      doc.add(newField("owner", (i < MAX / 2) ? "bob" : "sue", StringField.TYPE_STORED));
-      doc.add(newField("date", cal.getTime().toString(), StringField.TYPE_STORED));
+      doc.add(newField("key", "" + (i + 1), StoredStringField.TYPE));
+      doc.add(newField("owner", (i < MAX / 2) ? "bob" : "sue", StoredStringField.TYPE));
+      doc.add(newField("date", cal.getTime().toString(), StoredStringField.TYPE));
       writer.addDocument(doc);
 
       cal.add(Calendar.DATE, 1);
Index: lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java
===================================================================
--- lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(revision 1347990)
+++ lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(working copy)
@@ -17,12 +17,20 @@
  * limitations under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Date;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -32,14 +40,6 @@
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.util.Version;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Date;
-
 /** Index all text files under a directory.
  * <p>
  * This is a command-line application demonstrating simple Lucene indexing.
@@ -174,7 +174,7 @@
           // field that is indexed (i.e. searchable), but don't tokenize 
           // the field into separate words and don't index term frequency
           // or positional information:
-          Field pathField = new Field("path", file.getPath(), StringField.TYPE_STORED);
+          Field pathField = new StoredStringField("path", file.getPath());
           doc.add(pathField);
 
           // Add the last modified date of the file a field named "modified".
Index: lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java
===================================================================
--- lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java	(revision 1347990)
+++ lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java	(working copy)
@@ -36,7 +36,7 @@
 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.StoredTextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -134,7 +134,7 @@
     InputStream dataIn = getServletContext().getResourceAsStream("/WEB-INF/data.tsv");
     BufferedReader br = new BufferedReader(new InputStreamReader(dataIn));
     String line = br.readLine();
-    final FieldType textNoNorms = new FieldType(TextField.TYPE_STORED);
+    final FieldType textNoNorms = new FieldType(StoredTextField.TYPE);
     textNoNorms.setOmitNorms(true);
     while (line != null) {
       line = line.trim();
Index: lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java
===================================================================
--- lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(revision 1347990)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(working copy)
@@ -17,23 +17,22 @@
 
 package org.apache.lucene.spatial.prefix;
 
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.spatial.SimpleSpatialFieldInfo;
+import org.apache.lucene.spatial.SpatialTestCase;
+import org.apache.lucene.spatial.prefix.tree.QuadPrefixTree;
+import org.junit.Test;
 import com.spatial4j.core.context.SpatialContext;
 import com.spatial4j.core.context.simple.SimpleSpatialContext;
 import com.spatial4j.core.query.SpatialArgsParser;
 import com.spatial4j.core.shape.Shape;
 import com.spatial4j.core.shape.simple.PointImpl;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.spatial.SimpleSpatialFieldInfo;
-import org.apache.lucene.spatial.SpatialTestCase;
-import org.apache.lucene.spatial.prefix.tree.QuadPrefixTree;
-import org.junit.Test;
 
-import java.io.IOException;
-import java.util.Arrays;
 
-
 public class TestTermQueryPrefixGridStrategy extends SpatialTestCase {
 
   @Test
@@ -45,7 +44,7 @@
     Shape point = new PointImpl(-118.243680, 34.052230);
 
     Document losAngeles = new Document();
-    losAngeles.add(new Field("name", "Los Angeles", StringField.TYPE_STORED));
+    losAngeles.add(new StoredStringField("name", "Los Angeles"));
     losAngeles.add(prefixGridStrategy.createField(fieldInfo, point, true, true));
 
     addDocumentsAndCommit(Arrays.asList(losAngeles));
Index: lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java
===================================================================
--- lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java	(revision 1347990)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java	(working copy)
@@ -18,22 +18,21 @@
 package org.apache.lucene.spatial;
 
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.logging.Logger;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.index.IndexableField;
+import org.junit.Assert;
 import com.spatial4j.core.context.SpatialContext;
 import com.spatial4j.core.io.sample.SampleData;
 import com.spatial4j.core.io.sample.SampleDataReader;
 import com.spatial4j.core.query.SpatialArgsParser;
 import com.spatial4j.core.shape.Shape;
-import org.junit.Assert;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.IndexableField;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.logging.Logger;
-
 public abstract class StrategyTestCase<T extends SpatialFieldInfo> extends SpatialTestCase {
 
   public static final String DATA_STATES_POLY = "states-poly.txt";
@@ -76,8 +75,8 @@
     while (sampleData.hasNext()) {
       SampleData data = sampleData.next();
       Document document = new Document();
-      document.add(new Field("id", data.id, StringField.TYPE_STORED));
-      document.add(new Field("name", data.name, StringField.TYPE_STORED));
+      document.add(new StoredStringField("id", data.id));
+      document.add(new StoredStringField("name", data.name));
       Shape shape = ctx.readShape(data.shape);
       for (IndexableField f : strategy.createFields(fieldInfo, shape, true, storeShape)) {
         if( f != null ) { // null if incompatibleGeometry && ignore
Index: lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java
===================================================================
--- lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(revision 1347990)
+++ lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(working copy)
@@ -126,8 +126,8 @@
     IndexWriter writer = new IndexWriter(ramdir,
                                          new IndexWriterConfig(TEST_VERSION_CURRENT, analyzer).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    Field field1 = newField("foo", fooField.toString(), TextField.TYPE_UNSTORED);
-    Field field2 = newField("term", termField.toString(), TextField.TYPE_UNSTORED);
+    Field field1 = newField("foo", fooField.toString(), TextField.TYPE);
+    Field field2 = newField("term", termField.toString(), TextField.TYPE);
     doc.add(field1);
     doc.add(field2);
     writer.addDocument(doc);
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(revision 1347990)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(working copy)
@@ -44,23 +44,23 @@
     for (int i = 900; i < 1112; i++) {
       Document doc = new Document();
       String num = English.intToEnglish(i).replaceAll("[-]", " ").replaceAll("[,]", "");
-      doc.add(newField("numbers", num, TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", num, TextField.TYPE));
       writer.addDocument(doc);
     }
     
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "thou hast sand betwixt thy toes", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "thou hast sand betwixt thy toes", TextField.TYPE));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "hundredeight eightyeight yeight", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "hundredeight eightyeight yeight", TextField.TYPE));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "tres y cinco", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "tres y cinco", TextField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java	(revision 1347990)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java	(working copy)
@@ -39,7 +39,7 @@
     String[] termsToAdd = { "metanoia", "metanoian", "metanoiai", "metanoias", "metanoi𐑍" };
     for (int i = 0; i < termsToAdd.length; i++) {
       Document doc = new Document();
-      doc.add(newField("repentance", termsToAdd[i], TextField.TYPE_UNSTORED));
+      doc.add(newField("repentance", termsToAdd[i], TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -68,7 +68,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -108,7 +108,7 @@
     // add some more documents
     for (int i = 1000; i < 1100; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -132,13 +132,13 @@
         new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
 
     Document doc = new Document();
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobar", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobar", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobaz", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobaz", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "fobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "fobar", TextField.TYPE));
     writer.addDocument(doc);
    
     IndexReader ir = writer.getReader();
@@ -200,7 +200,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -224,7 +224,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -249,7 +249,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java	(revision 1347990)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java	(working copy)
@@ -22,7 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -54,23 +54,23 @@
     Document doc;
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newField("aaa", "foo", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newField("aaa", "foo", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Tom", TextField.TYPE_STORED));
+    doc.add(newField("contents", "Tom", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Jerry", TextField.TYPE_STORED));
+    doc.add(newField("contents", "Jerry", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("zzz", "bar", TextField.TYPE_STORED));
+    doc.add(newField("zzz", "bar", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     writer.forceMerge(1);
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java	(revision 1347990)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java	(working copy)
@@ -28,7 +28,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -59,14 +59,14 @@
 
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field1", English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(newField("field2", English.intToEnglish(i + 1), TextField.TYPE_STORED)); // + word thousand
-      doc.add(newField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), TextField.TYPE_STORED)); // + word thousand
+      doc.add(newField("field1", English.intToEnglish(i), StoredTextField.TYPE));
+      doc.add(newField("field2", English.intToEnglish(i + 1), StoredTextField.TYPE)); // + word thousand
+      doc.add(newField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), StoredTextField.TYPE)); // + word thousand
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "eight", TextField.TYPE_STORED)); // "eight" in
+      doc.add(newField("field1", "eight", StoredTextField.TYPE)); // "eight" in
                                                                    // the index
                                                                    // twice
       writer.addDocument(doc);
@@ -75,12 +75,12 @@
       Document doc = new Document();
       doc
           .add(newField("field1", "twenty-one twenty-one",
-              TextField.TYPE_STORED)); // "twenty-one" in the index thrice
+              StoredTextField.TYPE)); // "twenty-one" in the index thrice
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "twenty", TextField.TYPE_STORED)); // "twenty"
+      doc.add(newField("field1", "twenty", StoredTextField.TYPE)); // "twenty"
                                                                     // in the
                                                                     // index
                                                                     // twice
Index: lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java
===================================================================
--- lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(revision 1347990)
+++ lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(working copy)
@@ -20,21 +20,21 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.search.BooleanClause;
@@ -575,7 +575,7 @@
     Document doc = new Document();
     // the word field is never queried on... its indexed so it can be quickly
     // checked for rebuild (and stored for retrieval). Doesn't need norms or TF/pos
-    Field f = new Field(F_WORD, text, StringField.TYPE_STORED);
+    Field f = new StoredStringField(F_WORD, text);
     doc.add(f); // orig term
     addGram(text, doc, ng1, ng2);
     return doc;
@@ -588,7 +588,7 @@
       String end = null;
       for (int i = 0; i < len - ng + 1; i++) {
         String gram = text.substring(i, i + ng);
-        FieldType ft = new FieldType(StringField.TYPE_UNSTORED);
+        FieldType ft = new FieldType(StringField.TYPE);
         ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
         Field ngramField = new Field(key, gram, ft);
         // spellchecker does not use positional queries, but we want freqs
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java	(revision 1347990)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java	(working copy)
@@ -16,20 +16,19 @@
  * limitations under the License.
  */
 
+import java.io.StringReader;
+import java.util.Arrays;
+import java.util.Collections;
+
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.RAMDirectory;
 
-import java.io.StringReader;
-import java.util.Arrays;
-import java.util.Collections;
-
 public class QueryAutoStopWordAnalyzerTest extends BaseTokenStreamTestCase {
   String variedFieldValues[] = {"the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "boring", "dog"};
   String repetitiveFieldValues[] = {"boring", "boring", "vaguelyboring"};
@@ -49,8 +48,8 @@
       Document doc = new Document();
       String variedFieldValue = variedFieldValues[i % variedFieldValues.length];
       String repetitiveFieldValue = repetitiveFieldValues[i % repetitiveFieldValues.length];
-      doc.add(new Field("variedField", variedFieldValue, TextField.TYPE_STORED));
-      doc.add(new Field("repetitiveField", repetitiveFieldValue, TextField.TYPE_STORED));
+      doc.add(new StoredTextField("variedField", variedFieldValue));
+      doc.add(new StoredTextField("repetitiveField", repetitiveFieldValue));
       writer.addDocument(doc);
     }
     writer.close();
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java	(revision 1347990)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java	(working copy)
@@ -23,9 +23,8 @@
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
@@ -53,8 +52,8 @@
         TEST_VERSION_CURRENT, new SimpleAnalyzer(TEST_VERSION_CURRENT)));
 
     Document doc = new Document();
-    doc.add(new Field("partnum", "Q36", StringField.TYPE_STORED));
-    doc.add(new Field("description", "Illidium Space Modulator", TextField.TYPE_STORED));
+    doc.add(new StoredStringField("partnum", "Q36"));
+    doc.add(new StoredTextField("description", "Illidium Space Modulator"));
     writer.addDocument(doc);
 
     writer.close();
@@ -89,10 +88,10 @@
     RAMDirectory dir = new RAMDirectory();
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
     Document doc = new Document();
-    doc.add(new Field("partnum", "Q36", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("partnum", "Q36"));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(new Field("partnum", "Q37", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("partnum", "Q37"));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java	(revision 1347990)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java	(working copy)
@@ -58,7 +58,7 @@
     for(int i=0;i<10000;i++)
       b.append(" a");
     b.append(" x");
-    doc.add(newField("field", b.toString(), TextField.TYPE_UNSTORED));
+    doc.add(newField("field", b.toString(), TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java	(revision 1347990)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java	(working copy)
@@ -93,7 +93,7 @@
     TokenStream tokenStream = analyzer.tokenStream("field", new StringReader("abcd   "));
     TeeSinkTokenFilter tee = new TeeSinkTokenFilter(tokenStream);
     TokenStream sink = tee.newSinkTokenStream();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java	(revision 1347990)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java	(working copy)
@@ -27,8 +27,7 @@
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -62,15 +61,15 @@
 
     Document doc;
     doc = new Document();
-    doc.add(new Field("content", "please divide this sentence into shingles", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "please divide this sentence into shingles"));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "just another test sentence", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "just another test sentence"));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "a sentence which contains no test", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "a sentence which contains no test"));
     writer.addDocument(doc);
 
     writer.close();
Index: lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java
===================================================================
--- lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java	(revision 1347990)
+++ lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java	(working copy)
@@ -17,11 +17,12 @@
  * limitations under the License.
  */
 
+import java.io.StringReader;
+
 import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
@@ -35,8 +36,6 @@
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.StringReader;
-
 /**
  * Testcase for {@link UIMABaseAnalyzer}
  */
@@ -69,9 +68,9 @@
     // add the first doc
     Document doc = new Document();
     String dummyTitle = "this is a dummy title ";
-    doc.add(new Field("title", dummyTitle, TextField.TYPE_STORED));
+    doc.add(new StoredTextField("title", dummyTitle));
     String dummyContent = "there is some content written here";
-    doc.add(new Field("contents", dummyContent, TextField.TYPE_STORED));
+    doc.add(new StoredTextField("contents", dummyContent));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
@@ -90,9 +89,9 @@
     // add a second doc
     doc = new Document();
     String dogmasTitle = "dogmas";
-    doc.add(new Field("title", dogmasTitle, TextField.TYPE_STORED));
+    doc.add(new StoredTextField("title", dogmasTitle));
     String dogmasContents = "white men can't jump";
-    doc.add(new Field("contents", dogmasContents, TextField.TYPE_STORED));
+    doc.add(new StoredTextField("contents", dogmasContents));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
Index: lucene/CHANGES.txt
===================================================================
--- lucene/CHANGES.txt	(revision 1347990)
+++ lucene/CHANGES.txt	(working copy)
@@ -518,6 +518,9 @@
 * LUCENE-4063: FrenchLightStemmer no longer deletes repeated digits.
   (Tanguy Moal via Steve Rowe)
 
+* LUCENE-4101: Added StoredStringField and StoredTextField convenience
+  classes.  (Mike McCandless)
+
 New features
 
 * LUCENE-2604: Added RegexpQuery support to QueryParser. Regular expressions
Index: lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(revision 1347990)
+++ lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(working copy)
@@ -18,8 +18,8 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
@@ -37,8 +37,8 @@
     Document doc;
     for (int i = 0; i < NUM_DOCS; i++) {
       doc = new Document();
-      doc.add(newField("id", i + "", StringField.TYPE_STORED));
-      doc.add(newField("f", i + " " + i, TextField.TYPE_STORED));
+      doc.add(newField("id", i + "", StoredStringField.TYPE));
+      doc.add(newField("f", i + " " + i, StoredTextField.TYPE));
       w.addDocument(doc);
       if (i%3==0) w.commit();
     }
Index: lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java	(revision 1347990)
+++ lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java	(working copy)
@@ -23,8 +23,8 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
@@ -104,15 +104,15 @@
     StringBuilder sb = new StringBuilder();
     Document doc = new Document();
     String id = format.format(n);
-    doc.add(newField("id", id, StringField.TYPE_STORED));
-    doc.add(newField("indexname", indexName, StringField.TYPE_STORED));
+    doc.add(newField("id", id, StoredStringField.TYPE));
+    doc.add(newField("indexname", indexName, StoredStringField.TYPE));
     sb.append("a");
     sb.append(n);
-    doc.add(newField("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(newField("field1", sb.toString(), StoredTextField.TYPE));
     sb.append(" b");
     sb.append(n);
     for (int i = 1; i < numFields; i++) {
-      doc.add(newField("field" + (i + 1), sb.toString(), TextField.TYPE_STORED));
+      doc.add(newField("field" + (i + 1), sb.toString(), StoredTextField.TYPE));
     }
     return doc;
   }
Index: lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(revision 1347990)
+++ lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(working copy)
@@ -22,7 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -206,9 +206,9 @@
       Document doc = new Document();
       String content = getContent(i);
     
-      doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+      doc.add(newField(rnd, "FIELD_1", content, StoredTextField.TYPE));
       //add a different field
-      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE_STORED));
+      doc.add(newField(rnd, "different_field", "diff", StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     
@@ -216,7 +216,7 @@
     //highest freq terms for a specific field.
     for (int i = 1; i <= 10; i++) {
       Document doc = new Document();
-      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE_STORED));
+      doc.add(newField(rnd, "different_field", "diff", StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     // add some docs where tf < df so we can see if sorting works
@@ -227,7 +227,7 @@
     for (int i = 0; i < highTF; i++) {
       content += "highTF ";
     }
-    doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+    doc.add(newField(rnd, "FIELD_1", content, StoredTextField.TYPE));
     writer.addDocument(doc);
     // highTF medium df =5
     int medium_df = 5;
@@ -238,7 +238,7 @@
       for (int j = 0; j < tf; j++) {
         newcontent += "highTFmedDF ";
       }
-      newdoc.add(newField(rnd, "FIELD_1", newcontent, TextField.TYPE_STORED));
+      newdoc.add(newField(rnd, "FIELD_1", newcontent, StoredTextField.TYPE));
       writer.addDocument(newdoc);
     }
     // add a doc with high tf in field different_field
@@ -248,7 +248,7 @@
     for (int i = 0; i < targetTF; i++) {
       content += "TF150 ";
     }
-    doc.add(newField(rnd, "different_field", content, TextField.TYPE_STORED));
+    doc.add(newField(rnd, "different_field", content, StoredTextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java	(working copy)
@@ -47,7 +47,7 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    doc.add(newField(FN, "the quick brown fox jumps over the lazy dog", TextField.TYPE_UNSTORED));
+    doc.add(newField(FN, "the quick brown fox jumps over the lazy dog", TextField.TYPE));
     writer.addDocument(doc);
     reader = writer.getReader();
     writer.close();
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java	(working copy)
@@ -17,24 +17,19 @@
  * limitations under the License.
  */
 
-import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.spans.SpanFirstQuery;
 import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.util.LuceneTestCase;
 
 public class TestSpanRegexQuery extends LuceneTestCase {
@@ -65,10 +60,10 @@
     // Field.Store.NO, Field.Index.ANALYZED));
     // writer.addDocument(doc);
     // doc = new Document();
-    doc.add(newField("field", "auto update", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "auto update", TextField.TYPE));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "first auto update", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "first auto update", TextField.TYPE));
     writer.addDocument(doc);
     writer.forceMerge(1);
     writer.close();
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java	(working copy)
@@ -93,7 +93,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.KEYWORD, false)).setMergePolicy(newLogMergePolicy()));
 
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     
     for (int i = 0; i < terms; i++) {
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(working copy)
@@ -17,10 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.HashSet;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -31,9 +34,6 @@
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.HashSet;
-
 public class FuzzyLikeThisQueryTest extends LuceneTestCase {
   private Directory directory;
   private IndexSearcher searcher;
@@ -69,8 +69,8 @@
 
   private void addDoc(RandomIndexWriter writer, String name, String id) throws IOException {
     Document doc = new Document();
-    doc.add(newField("name", name, TextField.TYPE_STORED));
-    doc.add(newField("id", id, TextField.TYPE_STORED));
+    doc.add(newField("name", name, StoredTextField.TYPE));
+    doc.add(newField("id", id, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java	(working copy)
@@ -6,7 +6,7 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.*;
@@ -58,7 +58,7 @@
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
       String value = _TestUtil.randomUnicodeString(random());
-      Field field = newField("field", value, StringField.TYPE_STORED);
+      Field field = newField("field", value, StoredStringField.TYPE);
       doc.add(field);
       iw.addDocument(doc);
     }
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java	(working copy)
@@ -22,8 +22,8 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
@@ -76,9 +76,9 @@
 
   private void addDoc(RandomIndexWriter writer, String url, String text, String date) throws IOException {
     Document doc = new Document();
-    doc.add(newField(KEY_FIELD, url, StringField.TYPE_STORED));
-    doc.add(newField("text", text, TextField.TYPE_STORED));
-    doc.add(newField("date", date, TextField.TYPE_STORED));
+    doc.add(newField(KEY_FIELD, url, StoredStringField.TYPE));
+    doc.add(newField("text", text, StoredTextField.TYPE));
+    doc.add(newField("date", date, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java	(revision 1347990)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java	(working copy)
@@ -17,13 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Arrays;
-import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -462,7 +462,7 @@
 
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newField("field", text, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(revision 1347990)
+++ lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(working copy)
@@ -37,8 +37,9 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
 
 /** Minimal port of benchmark's LneDocSource +
  * DocMaker, so tests can enum docs from a line file created
@@ -165,7 +166,7 @@
       title = new StringField("title", "");
       doc.add(title);
 
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(StoredTextField.TYPE);
       ft.setStoreTermVectors(true);
       ft.setStoreTermVectorOffsets(true);
       ft.setStoreTermVectorPositions(true);
@@ -176,10 +177,10 @@
       body = new Field("body", "", ft);
       doc.add(body);
 
-      id = new Field("docid", "", StringField.TYPE_STORED);
+      id = new StoredStringField("docid", "");
       doc.add(id);
 
-      date = new Field("date", "", StringField.TYPE_STORED);
+      date = new StoredStringField("date", "");
       doc.add(date);
 
       if (useDocValues) {
Index: lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java	(revision 1347990)
+++ lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java	(working copy)
@@ -27,7 +27,8 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -85,8 +86,8 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
-    doc.add(new Field("body", "body", StringField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "\u0633\u0627\u0628"));
+    doc.add(new StoredStringField("body", "body"));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -122,7 +123,7 @@
     // orders the U+0698 character before the U+0633 character, so the single
     // index Term below should NOT be returned by a TermRangeQuery with a Farsi
     // Collator (or an Arabic one for the case when Farsi is not supported).
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "\u0633\u0627\u0628"));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -146,8 +147,8 @@
     IndexWriter writer = new IndexWriter(farsiIndex, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
-    doc.add(new Field("body", "body", StringField.TYPE_STORED));
+    doc.add(new StoredTextField("content", "\u0633\u0627\u0628"));
+    doc.add(new StoredStringField("body", "body"));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(revision 1347990)
+++ lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(working copy)
@@ -30,7 +30,8 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.similarities.Similarity;
@@ -45,7 +46,7 @@
   public static final String TEXT_FIELD_1_KEY = "textField1";
   public static Field textField1;
   static {
-    customType = new FieldType(TextField.TYPE_STORED);
+    customType = new FieldType(StoredTextField.TYPE);
     textField1 = new Field(TEXT_FIELD_1_KEY, FIELD_1_TEXT, customType);
   }
 
@@ -56,7 +57,7 @@
   public static final String TEXT_FIELD_2_KEY = "textField2";
   public static Field textField2;
   static {
-    customType2 = new FieldType(TextField.TYPE_STORED);
+    customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -69,7 +70,7 @@
   public static Field textField3;
   
   static {
-    customType3 = new FieldType(TextField.TYPE_STORED);
+    customType3 = new FieldType(StoredTextField.TYPE);
     customType3.setOmitNorms(true);
     textField3 = new Field(TEXT_FIELD_3_KEY, FIELD_3_TEXT, customType3);
   }
@@ -78,7 +79,7 @@
   public static final String KEYWORD_FIELD_KEY = "keyField";
   public static Field keyField;
   static {
-    keyField = new Field(KEYWORD_FIELD_KEY, KEYWORD_TEXT, StringField.TYPE_STORED);
+    keyField = new StoredStringField(KEYWORD_FIELD_KEY, KEYWORD_TEXT);
   }
 
   public static final FieldType customType5;
@@ -86,7 +87,7 @@
   public static final String NO_NORMS_KEY = "omitNorms";
   public static Field noNormsField;
   static {
-    customType5 = new FieldType(TextField.TYPE_STORED);
+    customType5 = new FieldType(StoredTextField.TYPE);
     customType5.setOmitNorms(true);
     customType5.setTokenized(false);
     noNormsField = new Field(NO_NORMS_KEY, NO_NORMS_TEXT, customType5);
@@ -97,7 +98,7 @@
   public static final String NO_TF_KEY = "omitTermFreqAndPositions";
   public static Field noTFField;
   static {
-    customType6 = new FieldType(TextField.TYPE_STORED);
+    customType6 = new FieldType(StoredTextField.TYPE);
     customType6.setIndexOptions(IndexOptions.DOCS_ONLY);
     noTFField = new Field(NO_TF_KEY, NO_TF_TEXT, customType6);
   }
@@ -115,14 +116,14 @@
 
   public static final String UNSTORED_1_FIELD_TEXT = "unstored field text";
   public static final String UNSTORED_FIELD_1_KEY = "unStoredField1";
-  public static Field unStoredField1 = new Field(UNSTORED_FIELD_1_KEY, UNSTORED_1_FIELD_TEXT, TextField.TYPE_UNSTORED);
+  public static Field unStoredField1 = new Field(UNSTORED_FIELD_1_KEY, UNSTORED_1_FIELD_TEXT, TextField.TYPE);
 
   public static final FieldType customType8;
   public static final String UNSTORED_2_FIELD_TEXT = "unstored field text";
   public static final String UNSTORED_FIELD_2_KEY = "unStoredField2";
   public static Field unStoredField2;
   static {
-    customType8 = new FieldType(TextField.TYPE_UNSTORED);
+    customType8 = new FieldType(TextField.TYPE);
     customType8.setStoreTermVectors(true);
     unStoredField2 = new Field(UNSTORED_FIELD_2_KEY, UNSTORED_2_FIELD_TEXT, customType8);
   }
@@ -293,12 +294,12 @@
   
   public static Document createDocument(int n, String indexName, int numFields) {
     StringBuilder sb = new StringBuilder();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
 
-    FieldType customType1 = new FieldType(StringField.TYPE_STORED);
+    FieldType customType1 = new FieldType(StoredStringField.TYPE);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
     customType1.setStoreTermVectorOffsets(true);
Index: lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(revision 1347990)
+++ lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(working copy)
@@ -29,8 +29,8 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.Query;
@@ -158,7 +158,7 @@
                 final String addedField;
                 if (random().nextBoolean()) {
                   addedField = "extra" + random().nextInt(40);
-                  doc.add(newField(addedField, "a random field", TextField.TYPE_STORED));
+                  doc.add(newField(addedField, "a random field", StoredTextField.TYPE));
                 } else {
                   addedField = null;
                 }
@@ -181,7 +181,7 @@
                       packID = packCount.getAndIncrement() + "";
                     }
 
-                    final Field packIDField = newField("packID", packID, StringField.TYPE_STORED);
+                    final Field packIDField = newField("packID", packID, StoredStringField.TYPE);
                     final List<String> docIDs = new ArrayList<String>();
                     final SubDocs subDocs = new SubDocs(packID, docIDs);
                     final List<Document> docsList = new ArrayList<Document>();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(working copy)
@@ -22,7 +22,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -120,8 +120,8 @@
     IndexWriter w = new IndexWriter(rd, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     for (int i = 0; i < docsContent.length; i++) {
       Document doc = new Document();
-      doc.add(newField("name", docsContent[i].name, TextField.TYPE_STORED));
-      doc.add(newField("id", docsContent[i].id, TextField.TYPE_STORED));
+      doc.add(newField("name", docsContent[i].name, StoredTextField.TYPE));
+      doc.add(newField("id", docsContent[i].id, StoredTextField.TYPE));
       w.addDocument(doc);
     }
     w.close();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java	(working copy)
@@ -1111,7 +1111,7 @@
     Analyzer a = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, a));
     Document doc = new Document();
-    doc.add(newField("f", "the wizard of ozzy", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "the wizard of ozzy", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true);
     w.close();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java	(working copy)
@@ -283,7 +283,7 @@
     Directory ramDir = newDirectory();
     IndexWriter iw =  new IndexWriter(ramDir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(newField("body", "blah the footest blah", TextField.TYPE_UNSTORED));
+    doc.add(newField("body", "blah the footest blah", TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
     
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java	(working copy)
@@ -17,9 +17,7 @@
  * limitations under the License.
  */
 
-import java.io.IOException;
 import java.io.Reader;
-import java.io.StringReader;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -322,7 +320,7 @@
     Directory ramDir = newDirectory();
     IndexWriter iw = new IndexWriter(ramDir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(newField("body", "blah the footest blah", TextField.TYPE_UNSTORED));
+    doc.add(newField("body", "blah the footest blah", TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
 
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java	(working copy)
@@ -19,7 +19,6 @@
 
 import java.io.IOException;
 import java.io.Reader;
-import java.io.StringReader;
 import java.text.DateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -1289,7 +1288,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new CannedAnalyzer()));
     Document doc = new Document();
-    doc.add(newField("field", "", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true);
     IndexSearcher s = newSearcher(r);
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(working copy)
@@ -17,13 +17,18 @@
  * limitations under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenFilter;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.IntField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -40,12 +45,7 @@
 import org.junit.Assume;
 import org.junit.BeforeClass;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 
-
 public class TestParser extends LuceneTestCase {
 
   private static CoreParser builder;
@@ -69,8 +69,8 @@
       String date = line.substring(0, endOfDate).trim();
       String content = line.substring(endOfDate).trim();
       Document doc = new Document();
-      doc.add(newField("date", date, TextField.TYPE_STORED));
-      doc.add(newField("contents", content, TextField.TYPE_STORED));
+      doc.add(newField("date", date, StoredTextField.TYPE));
+      doc.add(newField("contents", content, StoredTextField.TYPE));
       doc.add(new IntField("date2", Integer.valueOf(date)));
       writer.addDocument(doc);
       line = d.readLine();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(revision 1347990)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(working copy)
@@ -17,9 +17,16 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.StringTokenizer;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -31,14 +38,7 @@
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-import java.io.IOException;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.StringTokenizer;
 
-
 /**
  * This class illustrates how form input (such as from a web page or Swing gui) can be
  * turned into Lucene queries using a choice of XSL templates for different styles of queries.
@@ -129,7 +129,7 @@
       String name = st.nextToken().trim();
       if (st.hasMoreTokens()) {
         String value = st.nextToken().trim();
-        result.add(newField(name, value, TextField.TYPE_STORED));
+        result.add(newField(name, value, StoredTextField.TYPE));
       }
     }
     return result;
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(revision 1347990)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(working copy)
@@ -6,22 +6,7 @@
 
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.MatchAllDocsQuery;
-import org.apache.lucene.search.TopScoreDocCollector;
-import org.apache.lucene.store.Directory;
-
-import org.apache.lucene.search.MultiCollector;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
@@ -34,6 +19,18 @@
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.search.Collector;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.MultiCollector;
+import org.apache.lucene.search.TopScoreDocCollector;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -129,7 +126,7 @@
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
+    d.add(new StoredTextField("content", "alpha"));
     iw.addDocument(d);
   }
 
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(revision 1347990)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(working copy)
@@ -13,14 +13,26 @@
 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.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.index.params.CategoryListParams;
+import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
+import org.apache.lucene.facet.search.params.FacetRequest;
+import org.apache.lucene.facet.search.params.FacetSearchParams;
+import org.apache.lucene.facet.search.results.FacetResult;
+import org.apache.lucene.facet.search.results.FacetResultNode;
+import org.apache.lucene.facet.taxonomy.CategoryPath;
+import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -29,24 +41,10 @@
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
-import org.apache.lucene.facet.index.params.CategoryListParams;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
-import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.search.params.FacetRequest;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.search.results.FacetResult;
-import org.apache.lucene.facet.search.results.FacetResultNode;
-import org.apache.lucene.facet.taxonomy.CategoryPath;
-import org.apache.lucene.facet.taxonomy.TaxonomyReader;
-import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -263,7 +261,7 @@
     CategoryDocumentBuilder builder = new CategoryDocumentBuilder(tw, iParams);
     builder.setCategoryPaths(categories);
     builder.build(d);
-    d.add(new Field("content", content, TextField.TYPE_STORED));
+    d.add(new StoredTextField("content", content));
     iw.addDocument(d);
   }
   
Index: lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(revision 1347990)
+++ lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(working copy)
@@ -6,25 +6,12 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.store.Directory;
-import org.junit.Test;
-
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.results.FacetResult;
 import org.apache.lucene.facet.search.results.FacetResultNode;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
@@ -32,6 +19,17 @@
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.facet.util.PartitionsUtils;
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
+import org.junit.Test;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -328,7 +326,7 @@
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
+    d.add(new StoredTextField("content", "alpha"));
     iw.addDocument(d);
   }
 
Index: lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java
===================================================================
--- lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java	(revision 1347990)
+++ lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java	(working copy)
@@ -184,7 +184,7 @@
       // Finally creating a suitable field with stream and adding it to a
       // master field-list, used during the build process (see
       // super.build())
-      FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType ft = new FieldType(TextField.TYPE);
       ft.setOmitNorms(true);
       fieldList.add(new Field(e.getKey(), stream, ft));
     }
Index: lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
===================================================================
--- lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java	(revision 1347990)
+++ lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java	(working copy)
@@ -19,7 +19,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
@@ -33,8 +33,8 @@
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.LogByteSizeMergePolicy;
 import org.apache.lucene.index.SegmentInfos;
 import org.apache.lucene.index.Terms;
@@ -215,10 +215,10 @@
     
     reader = null;
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     parentStreamField = new Field(Consts.FIELD_PAYLOADS, parentStream, ft);
-    fullPathField = new Field(Consts.FULL, "", StringField.TYPE_STORED);
+    fullPathField = new StoredStringField(Consts.FULL, "");
 
     this.nextID = indexWriter.maxDoc();
 
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java	(revision 1347990)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java	(working copy)
@@ -4,18 +4,17 @@
 import java.util.List;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.facet.example.ExampleUtils;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.store.Directory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -69,7 +68,7 @@
 
       // create a plain Lucene document and add some regular Lucene fields to it 
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new StoredTextField(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum]));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the document and,
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java	(revision 1347990)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java	(working copy)
@@ -5,15 +5,8 @@
 import java.util.Random;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
-
 import org.apache.lucene.facet.example.ExampleUtils;
 import org.apache.lucene.facet.example.simple.SimpleUtils;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
@@ -22,6 +15,12 @@
 import org.apache.lucene.facet.index.params.PerDimensionIndexingParams;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.RAMDirectory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -172,7 +171,7 @@
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new StoredTextField(SimpleUtils.TITLE, docTitles[docNum]));
       doc.add(new TextField(SimpleUtils.TEXT, docTexts[docNum]));
 
       // finally add the document to the index
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java	(revision 1347990)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java	(working copy)
@@ -1,13 +1,8 @@
 package org.apache.lucene.facet.example.association;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.facet.enhancements.EnhancementsDocumentBuilder;
 import org.apache.lucene.facet.enhancements.association.AssociationProperty;
 import org.apache.lucene.facet.example.ExampleUtils;
@@ -17,6 +12,10 @@
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.store.Directory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -93,7 +92,7 @@
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new StoredTextField(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum]));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the
Index: lucene/core/src/java/org/apache/lucene/document/StoredTextField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/StoredTextField.java	(revision 0)
+++ lucene/core/src/java/org/apache/lucene/document/StoredTextField.java	(working copy)
@@ -0,0 +1,52 @@
+package org.apache.lucene.document;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Reader;
+
+
+/** A field that is indexed and tokenized, without term
+ *  vectors.  For example this would be used on a 'body'
+ *  field, that contains the bulk of a document's text.  The
+ *  value is stored; use {@link TextField} to index without
+ *  storing. */
+
+public final class StoredTextField extends Field {
+
+  /* Indexed, tokenized, stored. */
+  public static final FieldType TYPE = new FieldType();
+
+  static {
+    TYPE.setIndexed(true);
+    TYPE.setStored(true);
+    TYPE.setTokenized(true);
+    TYPE.freeze();
+  }
+
+  // TODO: add sugar for term vectors...?
+
+  /** Creates a new stored TextField */
+  public StoredTextField(String name, Reader reader) {
+    super(name, reader, TYPE);
+  }
+
+  /** Creates a new stored TextField */
+  public StoredTextField(String name, String value) {
+    super(name, value, TYPE);
+  }
+}
Index: lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java	(revision 1347990)
+++ lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java	(working copy)
@@ -62,7 +62,7 @@
 
   @Override
   public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-    final FieldType ft = new FieldType(TextField.TYPE_STORED);
+    final FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setStoreTermVectors(fieldInfo.hasVectors());
     ft.setIndexed(fieldInfo.isIndexed());
     ft.setOmitNorms(fieldInfo.omitsNorms());
Index: lucene/core/src/java/org/apache/lucene/document/StringField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/StringField.java	(revision 1347990)
+++ lucene/core/src/java/org/apache/lucene/document/StringField.java	(working copy)
@@ -1,7 +1,5 @@
 package org.apache.lucene.document;
 
-import org.apache.lucene.index.FieldInfo.IndexOptions;
-
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -19,42 +17,31 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.index.FieldInfo.IndexOptions;
+
 /** A field that is indexed but not tokenized: the entire
  *  String value is indexed as a single token.  For example
  *  this might be used for a 'country' field or an 'id'
  *  field, or any field that you intend to use for sorting
- *  or access through the field cache.
- *
- *  <p/>This field's value is not stored by default; use the
- *  {@link StringField#TYPE_STORED} type (pass it to <code>new
- *  Field</code>) to store the value. */
+ *  or access through the field cache.  The value is not
+ *  stored; use {@link StoredStringField} to also store it. */
 
 public final class StringField extends Field {
 
   /** Indexed, not tokenized, omits norms, indexes
    *  DOCS_ONLY, not stored. */
-  public static final FieldType TYPE_UNSTORED = new FieldType();
+  public static final FieldType TYPE = new FieldType();
 
-  /** Indexed, not tokenized, omits norms, indexes
-   *  DOCS_ONLY, stored */
-  public static final FieldType TYPE_STORED = new FieldType();
-
   static {
-    TYPE_UNSTORED.setIndexed(true);
-    TYPE_UNSTORED.setOmitNorms(true);
-    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE_UNSTORED.freeze();
-
-    TYPE_STORED.setIndexed(true);
-    TYPE_STORED.setStored(true);
-    TYPE_STORED.setOmitNorms(true);
-    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE_STORED.freeze();
+    TYPE.setIndexed(true);
+    TYPE.setOmitNorms(true);
+    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE.freeze();
   }
 
   /** Creates a new un-stored StringField */
   public StringField(String name, String value) {
-    super(name, value, TYPE_UNSTORED);
+    super(name, value, TYPE);
   }
 
   @Override
Index: lucene/core/src/java/org/apache/lucene/document/TextField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/TextField.java	(revision 1347990)
+++ lucene/core/src/java/org/apache/lucene/document/TextField.java	(working copy)
@@ -23,45 +23,35 @@
 
 /** A field that is indexed and tokenized, without term
  *  vectors.  For example this would be used on a 'body'
- *  field, that contains the bulk of a document's text.
- * 
- *  This field's value is not stored by default; use the
- *  {@link TextField#TYPE_STORED} type (pass it to <code>new
- *  Field</code>) to store the value. */
+ *  field, that contains the bulk of a document's text. The
+ *  value is not stored; use {@link StoredTextField} to
+ *  also store it. */
 
 public final class TextField extends Field {
 
   /* Indexed, tokenized, not stored. */
-  public static final FieldType TYPE_UNSTORED = new FieldType();
+  public static final FieldType TYPE = new FieldType();
 
-  /* Indexed, tokenized, stored. */
-  public static final FieldType TYPE_STORED = new FieldType();
-
   static {
-    TYPE_UNSTORED.setIndexed(true);
-    TYPE_UNSTORED.setTokenized(true);
-    TYPE_UNSTORED.freeze();
-
-    TYPE_STORED.setIndexed(true);
-    TYPE_STORED.setStored(true);
-    TYPE_STORED.setTokenized(true);
-    TYPE_STORED.freeze();
+    TYPE.setIndexed(true);
+    TYPE.setTokenized(true);
+    TYPE.freeze();
   }
 
   // TODO: add sugar for term vectors...?
 
   /** Creates a new un-stored TextField */
   public TextField(String name, Reader reader) {
-    super(name, reader, TextField.TYPE_UNSTORED);
+    super(name, reader, TYPE);
   }
 
   /** Creates a new un-stored TextField */
   public TextField(String name, String value) {
-    super(name, value, TextField.TYPE_UNSTORED);
+    super(name, value, TYPE);
   }
   
   /** Creates a new un-stored TextField */
   public TextField(String name, TokenStream stream) {
-    super(name, stream, TextField.TYPE_UNSTORED);
+    super(name, stream, TYPE);
   }
 }
Index: lucene/core/src/java/org/apache/lucene/document/StoredStringField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/StoredStringField.java	(revision 0)
+++ lucene/core/src/java/org/apache/lucene/document/StoredStringField.java	(working copy)
@@ -0,0 +1,52 @@
+package org.apache.lucene.document;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.lucene.index.FieldInfo.IndexOptions;
+
+/** A field that is indexed but not tokenized: the entire
+ *  String value is indexed as a single token.  For example
+ *  this might be used for a 'country' field or an 'id'
+ *  field, or any field that you intend to use for sorting
+ *  or access through the field cache.  The value is stored;
+ *  use {@link StringField} to index without storing. */
+
+public final class StoredStringField extends Field {
+
+  /** Indexed, not tokenized, omits norms, indexes
+   *  DOCS_ONLY, stored */
+  public static final FieldType TYPE = new FieldType();
+
+  static {
+    TYPE.setIndexed(true);
+    TYPE.setStored(true);
+    TYPE.setOmitNorms(true);
+    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE.freeze();
+  }
+
+  /** Creates a new stored StringField */
+  public StoredStringField(String name, String value) {
+    super(name, value, TYPE);
+  }
+
+  @Override
+  public String stringValue() {
+    return (fieldsData == null) ? null : fieldsData.toString();
+  }
+}
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(working copy)
@@ -28,7 +28,7 @@
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Payload;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -115,7 +115,7 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 2000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java	(working copy)
@@ -48,7 +48,7 @@
   }
   
   protected static Field field(String name, String value) {
-    return newField(name, value, TextField.TYPE_UNSTORED);
+    return newField(name, value, TextField.TYPE);
   }
 
   protected static IndexSearcher searcher;
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(working copy)
@@ -19,20 +19,19 @@
 
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenFilter;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /*******************************************************************************
  * Tests the span query bug in Lucene. It demonstrates that SpanTermQuerys don't
@@ -92,8 +91,8 @@
       final String text) throws IOException {
     
     final Document document = new Document();
-    document.add(newField(FIELD_ID, id, StringField.TYPE_STORED));
-    document.add(newField(FIELD_TEXT, text, TextField.TYPE_STORED));
+    document.add(newField(FIELD_ID, id, StoredStringField.TYPE));
+    document.add(newField(FIELD_TEXT, text, StoredTextField.TYPE));
     writer.addDocument(document);
   }
   
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java	(working copy)
@@ -21,8 +21,8 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -57,7 +57,7 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field, docFields[i], TextField.TYPE_STORED));
+      doc.add(newField(field, docFields[i], StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -446,8 +446,8 @@
   // LUCENE-1404
   private void addDoc(IndexWriter writer, String id, String text) throws IOException {
     final Document doc = new Document();
-    doc.add( newField("id", id, StringField.TYPE_STORED) );
-    doc.add( newField("text", text, TextField.TYPE_STORED) );
+    doc.add( newField("id", id, StoredStringField.TYPE) );
+    doc.add( newField("text", text, StoredTextField.TYPE) );
     writer.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java	(working copy)
@@ -43,7 +43,7 @@
     directory = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java	(working copy)
@@ -24,15 +24,16 @@
 import java.util.Set;
 
 import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Payload;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
@@ -110,7 +111,7 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer()).setSimilarity(similarity));
 
     Document doc = new Document();
-    doc.add(newField(PayloadHelper.FIELD, "one two three one four three", TextField.TYPE_STORED));
+    doc.add(newField(PayloadHelper.FIELD, "one two three one four three", StoredTextField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -369,7 +370,7 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer()).setSimilarity(similarity));
 
     Document doc = new Document();
-    doc.add(newField(PayloadHelper.FIELD,"xx rr yy mm  pp", TextField.TYPE_STORED));
+    doc.add(newField(PayloadHelper.FIELD,"xx rr yy mm  pp", StoredTextField.TYPE));
     writer.addDocument(doc);
   
     IndexReader reader = writer.getReader();
@@ -432,7 +433,7 @@
     for(int i = 0; i < docs.length; i++) {
       doc = new Document();
       String docText = docs[i];
-      doc.add(newField(PayloadHelper.FIELD,docText, TextField.TYPE_STORED));
+      doc.add(newField(PayloadHelper.FIELD,docText, StoredTextField.TYPE));
       writer.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java	(working copy)
@@ -41,10 +41,10 @@
     
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, analyzer);
     Document doc = new Document();
-    doc.add(newField("field", "the quick brown fox", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "the quick brown fox", TextField.TYPE));
     writer.addDocument(doc);
     Document doc2 = new Document();
-    doc2.add(newField("field", "quick brown fox", TextField.TYPE_UNSTORED));
+    doc2.add(newField("field", "quick brown fox", TextField.TYPE));
     writer.addDocument(doc2);
     
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java	(working copy)
@@ -54,7 +54,7 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(FIELD, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(FIELD, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java	(working copy)
@@ -45,11 +45,11 @@
     int num = atLeast(31);
     for (int i = 0; i < num; i++) {
       Document doc = new Document();
-      doc.add(newField("f", "a b c d b c d c d d", TextField.TYPE_UNSTORED));
+      doc.add(newField("f", "a b c d b c d c d d", TextField.TYPE));
       w.addDocument(doc);
 
       doc = new Document();
-      doc.add(newField("f", "a b c d", TextField.TYPE_UNSTORED));
+      doc.add(newField("f", "a b c d", TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java	(working copy)
@@ -20,6 +20,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -96,10 +97,10 @@
       Document doc = new Document();
       if (random().nextBoolean()) {
         docStates[i] = 1;
-        doc.add(newField("some", "value", TextField.TYPE_STORED));
+        doc.add(newField("some", "value", StoredTextField.TYPE));
       }
-      doc.add(newField("all", "test", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+      doc.add(newField("all", "test", TextField.TYPE));
+      doc.add(newField("id", "" + i, StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     writer.commit();
Index: lucene/core/src/test/org/apache/lucene/search/TestWildcard.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestWildcard.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestWildcard.java	(working copy)
@@ -17,10 +17,11 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -28,9 +29,9 @@
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.Terms;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 /**
  * TestWildcard tests the '*' and '?' wildcard characters.
  */
@@ -250,7 +251,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), indexStore);
     for (int i = 0; i < contents.length; ++i) {
       Document doc = new Document();
-      doc.add(newField(field, contents[i], TextField.TYPE_STORED));
+      doc.add(newField(field, contents[i], StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     writer.close();
@@ -350,7 +351,7 @@
         .setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docs.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field,docs[i],TextField.TYPE_UNSTORED));
+      doc.add(newField(field,docs[i],TextField.TYPE));
       iw.addDocument(doc);
     }
     iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(working copy)
@@ -95,8 +95,8 @@
 
       for(int docIDX=0;docIDX<numDocs;docIDX++) {
         final Document doc = new Document();
-        doc.add(newField("string", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
-        doc.add(newField("text", content[random().nextInt(content.length)], TextField.TYPE_UNSTORED));
+        doc.add(newField("string", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
+        doc.add(newField("text", content[random().nextInt(content.length)], TextField.TYPE));
         doc.add(new FloatField("float", random().nextFloat()));
         final int intValue;
         if (random().nextInt(100) == 17) {
Index: lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -117,9 +118,9 @@
     /* build an index */
     
     Document doc = new Document();
-    Field idField = newField(random, "id", "", StringField.TYPE_STORED);
-    Field randField = newField(random, "rand", "", StringField.TYPE_STORED);
-    Field bodyField = newField(random, "body", "", StringField.TYPE_UNSTORED);
+    Field idField = newField(random, "id", "", StoredStringField.TYPE);
+    Field randField = newField(random, "rand", "", StoredStringField.TYPE);
+    Field bodyField = newField(random, "body", "", StringField.TYPE);
     doc.add(idField);
     doc.add(randField);
     doc.add(bodyField);
Index: lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(working copy)
@@ -26,7 +26,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -304,7 +304,7 @@
     final NRTManager.TrackingIndexWriter writer = new NRTManager.TrackingIndexWriter(_writer);
     final NRTManager manager = new NRTManager(writer, null, false);
     Document doc = new Document();
-    doc.add(newField("test","test", TextField.TYPE_STORED));
+    doc.add(newField("test","test", StoredTextField.TYPE));
     long gen = writer.addDocument(doc);
     manager.maybeRefresh();
     assertFalse(gen < manager.getCurrentSearchingGen());
Index: lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(working copy)
@@ -60,7 +60,7 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(field, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     writer.close();
@@ -92,12 +92,12 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()))
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    doc.add(newField("field2", "xxx", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "xxx", TextField.TYPE));
     for(int i=0;i<NUM_EXTRA_DOCS/2;i++) {
       w.addDocument(doc);
     }
     doc = new Document();
-    doc.add(newField("field2", "big bad bug", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "big bad bug", TextField.TYPE));
     for(int i=0;i<NUM_EXTRA_DOCS/2;i++) {
       w.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestExplanations.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestExplanations.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestExplanations.java	(working copy)
@@ -74,11 +74,11 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(KEY, ""+i, StringField.TYPE_UNSTORED));
-      Field f = newField(FIELD, docFields[i], TextField.TYPE_UNSTORED);
+      doc.add(newField(KEY, ""+i, StringField.TYPE));
+      Field f = newField(FIELD, docFields[i], TextField.TYPE);
       f.setBoost(i);
       doc.add(f);
-      doc.add(newField(ALTFIELD, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(ALTFIELD, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(working copy)
@@ -70,7 +70,7 @@
       Document d = new Document();
       for (int j=0; j<nTerms; j++) {
         if (random().nextInt(freq[j]) == 0) {
-          d.add(newField("f", terms[j].text(), StringField.TYPE_UNSTORED));
+          d.add(newField("f", terms[j].text(), StringField.TYPE));
           //System.out.println(d);
         }
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java	(working copy)
@@ -17,13 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Arrays;
-import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -324,7 +324,7 @@
   
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newField("field", text, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(working copy)
@@ -50,7 +50,7 @@
     Document doc = new Document();
     doc.add(newField(FN,
         "the quick brown fox jumps over the lazy ??? dog 493432 49344",
-        TextField.TYPE_UNSTORED));
+        TextField.TYPE));
     writer.addDocument(doc);
     reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(working copy)
@@ -17,18 +17,18 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 /**
  * DateFilter JUnit tests.
  * 
@@ -49,9 +49,9 @@
     Document doc = new Document();
     // add time that is in the past
     doc.add(newField("datefield", DateTools.timeToString(now - 1000,
-        DateTools.Resolution.MILLISECOND), StringField.TYPE_STORED));
+        DateTools.Resolution.MILLISECOND), StoredStringField.TYPE));
     doc.add(newField("body", "Today is a very sunny day in New York City",
-        TextField.TYPE_STORED));
+        StoredTextField.TYPE));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
@@ -114,9 +114,9 @@
     Document doc = new Document();
     // add time that is in the future
     doc.add(newField("datefield", DateTools.timeToString(now + 888888,
-        DateTools.Resolution.MILLISECOND), StringField.TYPE_STORED));
+        DateTools.Resolution.MILLISECOND), StoredStringField.TYPE));
     doc.add(newField("body", "Today is a very sunny day in New York City",
-                     TextField.TYPE_STORED));
+                     StoredTextField.TYPE));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(working copy)
@@ -22,13 +22,12 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.util.LuceneTestCase;
 
 /**
@@ -99,7 +98,7 @@
   
   private void addDoc(String text, IndexWriter iw, float boost) throws IOException {
     Document doc = new Document();
-    Field f = newField("key", text, TextField.TYPE_STORED);
+    Field f = newField("key", text, StoredTextField.TYPE);
     f.setBoost(boost);
     doc.add(f);
     iw.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(working copy)
@@ -17,10 +17,11 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import java.io.IOException;
 
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
@@ -28,11 +29,8 @@
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.util.LuceneTestCase;
 
 /** Similarity unit test.
  *
@@ -59,10 +57,10 @@
         .setSimilarity(new SimpleSimilarity()));
     
     Document d1 = new Document();
-    d1.add(newField("field", "a c", TextField.TYPE_STORED));
+    d1.add(newField("field", "a c", StoredTextField.TYPE));
 
     Document d2 = new Document();
-    d2.add(newField("field", "a b c", TextField.TYPE_STORED));
+    d2.add(newField("field", "a b c", StoredTextField.TYPE));
     
     writer.addDocument(d1);
     writer.addDocument(d2);
Index: lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(working copy)
@@ -25,8 +25,8 @@
 
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -57,13 +57,13 @@
       Document doc = new Document();
       if ((i % 5) != 0) { // some documents must not have an entry in the first
                           // sort field
-        doc.add(newField("publicationDate_", random.getLuceneDate(), StringField.TYPE_STORED));
+        doc.add(newField("publicationDate_", random.getLuceneDate(), StoredStringField.TYPE));
       }
       if ((i % 7) == 0) { // some documents to match the query (see below)
-        doc.add(newField("content", "test", TextField.TYPE_STORED));
+        doc.add(newField("content", "test", StoredTextField.TYPE));
       }
       // every document has a defined 'mandant' field
-      doc.add(newField("mandant", Integer.toString(i % 3), StringField.TYPE_STORED));
+      doc.add(newField("mandant", Integer.toString(i % 3), StoredStringField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java	(working copy)
@@ -49,9 +49,9 @@
         new MockAnalyzer(random())).setSimilarity(sim);
     RandomIndexWriter iw = new RandomIndexWriter(random(), directory, iwc);
     Document doc = new Document();
-    Field field = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field field = newField("foo", "", TextField.TYPE);
     doc.add(field);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(working copy)
@@ -28,7 +28,6 @@
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
-import com.carrotsearch.randomizedtesting.annotations.ThreadLeaks;
 
 /**
  * https://issues.apache.org/jira/browse/LUCENE-1974
@@ -52,7 +51,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
 
     Document doc = new Document();
-    Field field = newField(FIELD, "meaninglessnames", StringField.TYPE_UNSTORED);
+    Field field = newField(FIELD, "meaninglessnames", StringField.TYPE);
     doc.add(field);
     
     for (int i = 0; i < 5137; ++i) {
Index: lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java	(working copy)
@@ -38,8 +38,8 @@
     Directory store = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), store, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
 
-    Field f1 = newField("field", "word", TextField.TYPE_STORED);
-    Field f2 = newField("field", "word", TextField.TYPE_STORED);
+    Field f1 = newField("field", "word", StoredTextField.TYPE);
+    Field f2 = newField("field", "word", StoredTextField.TYPE);
     f2.setBoost(2.0f);
 
     Document d1 = new Document();
Index: lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(working copy)
@@ -17,18 +17,19 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.search.FieldValueHitQueue.Entry;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.*;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
 
 public class TestElevationComparator extends LuceneTestCase {
 
@@ -125,7 +126,7 @@
  private Document adoc(String[] vals) {
    Document doc = new Document();
    for (int i = 0; i < vals.length - 2; i += 2) {
-     doc.add(newField(vals[i], vals[i + 1], TextField.TYPE_STORED));
+     doc.add(newField(vals[i], vals[i + 1], StoredTextField.TYPE));
    }
    return doc;
  }
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(working copy)
@@ -17,17 +17,16 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * A basic unit test for FieldCacheTermsFilter
  *
@@ -41,7 +40,7 @@
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
       int term = i * 10; //terms are units of 10;
-      doc.add(newField(fieldName, "" + term, StringField.TYPE_STORED));
+      doc.add(newField(fieldName, "" + term, StoredStringField.TYPE));
       w.addDocument(doc);
     }
     IndexReader reader = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(working copy)
@@ -116,7 +116,7 @@
 
   private void add(String value, RandomIndexWriter iw) throws IOException {
     Document d = new Document();
-    d.add(newField(FIELD_NAME, value, TextField.TYPE_UNSTORED));
+    d.add(newField(FIELD_NAME, value, TextField.TYPE));
     iw.addDocument(d);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(working copy)
@@ -17,13 +17,13 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Tests {@link PrefixFilter} class.
@@ -40,7 +40,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < categories.length; i++) {
       Document doc = new Document();
-      doc.add(newField("category", categories[i], StringField.TYPE_STORED));
+      doc.add(newField("category", categories[i], StoredStringField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java	(working copy)
@@ -21,7 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -178,7 +178,7 @@
 
     // add a doc, refresh the reader, and check that it's there
     Document doc = new Document();
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("id", "1", StoredStringField.TYPE));
     writer.addDocument(doc);
 
     reader = refreshReader(reader);
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java	(working copy)
@@ -48,9 +48,9 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field titleField = newField("title", "some title", TextField.TYPE_UNSTORED);
-    Field field = newField(FN, "", TextField.TYPE_UNSTORED);
-    Field footerField = newField("footer", "a footer", TextField.TYPE_UNSTORED);
+    Field titleField = newField("title", "some title", TextField.TYPE);
+    Field field = newField(FN, "", TextField.TYPE);
+    Field footerField = newField("footer", "a footer", TextField.TYPE);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(working copy)
@@ -31,7 +31,6 @@
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.NamedThreadFactory;
@@ -73,7 +72,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field", "a b c d", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d", TextField.TYPE));
     w.addDocument(doc);
 
     IndexReader r = w.getReader();
@@ -137,7 +136,7 @@
     Directory dir1 = newDirectory();
     RandomIndexWriter iw1 = new RandomIndexWriter(random(), dir1);
     Document doc1 = new Document();
-    doc1.add(newField("field", "foo bar", TextField.TYPE_UNSTORED));
+    doc1.add(newField("field", "foo bar", TextField.TYPE));
     iw1.addDocument(doc1);
     IndexReader reader1 = iw1.getReader();
     iw1.close();
@@ -145,7 +144,7 @@
     Directory dir2 = newDirectory();
     RandomIndexWriter iw2 = new RandomIndexWriter(random(), dir2);
     Document doc2 = new Document();
-    doc2.add(newField("field", "foo baz", TextField.TYPE_UNSTORED));
+    doc2.add(newField("field", "foo baz", TextField.TYPE));
     iw2.addDocument(doc2);
     IndexReader reader2 = iw2.getReader();
     iw2.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSort.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSort.java	(working copy)
@@ -39,6 +39,7 @@
 import org.apache.lucene.document.FloatDocValuesField;
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
@@ -1274,12 +1275,12 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
                         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("f", "", StringField.TYPE_UNSTORED));
-    doc.add(newField("t", "1", StringField.TYPE_UNSTORED));
+    doc.add(newField("f", "", StringField.TYPE));
+    doc.add(newField("t", "1", StringField.TYPE));
     w.addDocument(doc);
     w.commit();
     doc = new Document();
-    doc.add(newField("t", "1", StringField.TYPE_UNSTORED));
+    doc.add(newField("t", "1", StringField.TYPE));
     w.addDocument(doc);
 
     IndexReader r = DirectoryReader.open(w, true);
@@ -1408,7 +1409,7 @@
       
       final Document doc = new Document();
       doc.add(new SortedBytesDocValuesField("stringdv", br));
-      doc.add(newField("string", s, StringField.TYPE_UNSTORED));
+      doc.add(newField("string", s, StringField.TYPE));
       doc.add(new PackedLongDocValuesField("id", numDocs));
       docValues.add(br);
       writer.addDocument(doc);
@@ -1497,13 +1498,13 @@
     for(int seg=0;seg<2;seg++) {
       for(int docIDX=0;docIDX<10;docIDX++) {
         Document doc = new Document();
-        doc.add(newField("id", ""+docIDX, StringField.TYPE_STORED));
+        doc.add(newField("id", ""+docIDX, StoredStringField.TYPE));
         StringBuilder sb = new StringBuilder();
         for(int i=0;i<id;i++) {
           sb.append(' ');
           sb.append("text");
         }
-        doc.add(newField("body", sb.toString(), TextField.TYPE_UNSTORED));
+        doc.add(newField("body", sb.toString(), TextField.TYPE));
         w.addDocument(doc);
         id++;
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java	(working copy)
@@ -52,7 +52,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
     
     NumberFormat df = new DecimalFormat("000", new DecimalFormatSymbols(Locale.ENGLISH));
Index: lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(working copy)
@@ -21,7 +21,7 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Norm;
@@ -30,15 +30,14 @@
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.CollectionStatistics;
 import org.apache.lucene.search.Explanation;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.QueryUtils;
 import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermStatistics;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanQuery;
-import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
@@ -115,9 +114,9 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), StoredTextField.TYPE));
       String txt = English.intToEnglish(i) +' '+English.intToEnglish(i+1);
-      doc.add(newField("field2",  txt, TextField.TYPE_STORED));
+      doc.add(newField("field2",  txt, StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java	(working copy)
@@ -16,41 +16,41 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.Reader;
+
 import org.apache.lucene.analysis.*;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.English;
+import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.FieldInvertState;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Norm;
+import org.apache.lucene.index.Payload;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.CheckHits;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.QueryUtils;
+import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.CheckHits;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.search.spans.MultiSpansWrapper;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.search.spans.Spans;
-import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Norm;
-import org.apache.lucene.index.Payload;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.apache.lucene.document.TextField;
 
-import java.io.Reader;
-import java.io.IOException;
 
-
 /**
  *
  *
@@ -125,11 +125,11 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      Field noPayloadField = newField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE_STORED);
+      Field noPayloadField = newField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), StoredTextField.TYPE);
       //noPayloadField.setBoost(0);
       doc.add(noPayloadField);
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(newField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), StoredTextField.TYPE));
+      doc.add(newField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(working copy)
@@ -17,30 +17,29 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.Reader;
+import java.util.Random;
+
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Payload;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.util.English;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
 
 import static org.apache.lucene.util.LuceneTestCase.TEST_VERSION_CURRENT;
 
-import java.io.Reader;
-import java.io.IOException;
-import java.util.Random;
-
 /**
  *
  *
@@ -126,9 +125,9 @@
     // writer.infoStream = System.out;
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(new Field(FIELD, English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(new Field(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(new Field(NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(new StoredTextField(FIELD, English.intToEnglish(i)));
+      doc.add(new StoredTextField(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i)));
+      doc.add(new StoredTextField(NO_PAYLOAD_FIELD, English.intToEnglish(i)));
       writer.addDocument(doc);
     }
     reader = DirectoryReader.open(writer, true);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(working copy)
@@ -53,7 +53,7 @@
 
     for (int i = 0; i < 10; i++) {
       Document doc = new Document();
-      doc.add(newField("data", Integer.toString(i), StringField.TYPE_UNSTORED));
+      doc.add(newField("data", Integer.toString(i), StringField.TYPE));
       writer.addDocument(doc);
       ((i % 2 == 0) ? swriter1 : swriter2).addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(working copy)
@@ -51,11 +51,11 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    Field field = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field field = newField("foo", "", TextField.TYPE);
     doc.add(field);
     Field dvField = new FloatDocValuesField("foo_boost", 0.0f);
     doc.add(dvField);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
@@ -37,7 +38,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field", "value", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "value", TextField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -100,9 +101,9 @@
       } else {
         v = "b";
       }
-      final Field f = newField("field", v, StringField.TYPE_UNSTORED);
+      final Field f = newField("field", v, StringField.TYPE);
       doc.add(f);
-      doc.add(newField("id", ""+i, StringField.TYPE_STORED));
+      doc.add(newField("id", ""+i, StoredStringField.TYPE));
       w.addDocument(doc);
     }
 
@@ -131,7 +132,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), StringField.TYPE_UNSTORED));
+      doc.add(newField("field", English.intToEnglish(i), StringField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(working copy)
@@ -26,7 +26,7 @@
 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.StoredTextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
@@ -51,7 +51,7 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(StoredTextField.TYPE);
       int mod3 = i % 3;
       int mod2 = i % 2;
       if (mod2 == 0 && mod3 == 0) {
@@ -69,7 +69,7 @@
       }
       doc.add(new Field("field", English.intToEnglish(i), ft));
       //test no term vectors too
-      doc.add(new Field("noTV", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(new StoredTextField("noTV", English.intToEnglish(i)));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -109,7 +109,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
@@ -320,11 +320,11 @@
   
   private void setupDoc(Document doc, String text)
   {
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
-    FieldType ft2 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft2 = new FieldType(StoredTextField.TYPE);
     ft2.setStoreTermVectors(true);
     doc.add(newField("field2", text, ft));
     doc.add(newField("field", text, ft2));
@@ -341,13 +341,13 @@
     }
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     if (VERBOSE) {
       System.out.println("TEST: now add vectors");
     }
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
@@ -385,23 +385,23 @@
         new MockAnalyzer(random(), MockTokenizer.SIMPLE, true)).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
     
-    FieldType ft2 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft2 = new FieldType(StoredTextField.TYPE);
     ft2.setStoreTermVectors(true);
     
-    FieldType ft3 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft3 = new FieldType(StoredTextField.TYPE);
     ft3.setStoreTermVectors(true);
     ft3.setStoreTermVectorPositions(true);
     
-    FieldType ft4 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft4 = new FieldType(StoredTextField.TYPE);
     ft4.setStoreTermVectors(true);
     ft4.setStoreTermVectorOffsets(true);
     
-    FieldType ft5 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft5 = new FieldType(StoredTextField.TYPE);
     ft5.setStoreTermVectors(true);
     ft5.setStoreTermVectorOffsets(true);
     ft5.setStoreTermVectorPositions(true);
     
-    doc.add(newField("field", "one", TextField.TYPE_STORED));
+    doc.add(newField("field", "one", StoredTextField.TYPE));
     doc.add(newField("field", "one", ft2));
     doc.add(newField("field", "one", ft3));
     doc.add(newField("field", "one", ft4));
@@ -459,7 +459,7 @@
 
   private Document createDoc() {
     Document doc = new Document();
-    final FieldType ft = new FieldType(TextField.TYPE_STORED);
+    final FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java	(working copy)
@@ -51,7 +51,7 @@
       Document doc = new Document();
       for (int m=0, c=random().nextInt(10); m<=c; m++) {
         int value = random().nextInt(Integer.MAX_VALUE);
-        doc.add(newField("asc", format.format(value), StringField.TYPE_UNSTORED));
+        doc.add(newField("asc", format.format(value), StringField.TYPE));
         doc.add(new IntField("trie", value));
       }
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java	(working copy)
@@ -23,7 +23,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -54,7 +54,7 @@
     for (int i = 0; i < values.length; i++) {
       Document doc = new Document();
       doc
-          .add(newField(FIELD, values[i], TextField.TYPE_STORED));
+          .add(newField(FIELD, values[i], StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     indexReader = SlowCompositeReaderWrapper.wrap(writer.getReader());
Index: lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(working copy)
@@ -17,20 +17,20 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.util.LinkedList;
+
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.LinkedList;
-
 /**
  * This class tests PhrasePrefixQuery class.
  */
@@ -47,11 +47,11 @@
     Document doc3 = new Document();
     Document doc4 = new Document();
     Document doc5 = new Document();
-    doc1.add(newField("body", "blueberry pie", TextField.TYPE_STORED));
-    doc2.add(newField("body", "blueberry strudel", TextField.TYPE_STORED));
-    doc3.add(newField("body", "blueberry pizza", TextField.TYPE_STORED));
-    doc4.add(newField("body", "blueberry chewing gum", TextField.TYPE_STORED));
-    doc5.add(newField("body", "piccadilly circus", TextField.TYPE_STORED));
+    doc1.add(newField("body", "blueberry pie", StoredTextField.TYPE));
+    doc2.add(newField("body", "blueberry strudel", StoredTextField.TYPE));
+    doc3.add(newField("body", "blueberry pizza", StoredTextField.TYPE));
+    doc4.add(newField("body", "blueberry chewing gum", StoredTextField.TYPE));
+    doc5.add(newField("body", "piccadilly circus", StoredTextField.TYPE));
     writer.addDocument(doc1);
     writer.addDocument(doc2);
     writer.addDocument(doc3);
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java	(working copy)
@@ -48,9 +48,9 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field titleField = newField("title", "some title", TextField.TYPE_UNSTORED);
-    Field field = newField(FN, "this is document one 2345", TextField.TYPE_UNSTORED);
-    Field footerField = newField("footer", "a footer", TextField.TYPE_UNSTORED);
+    Field titleField = newField("title", "some title", TextField.TYPE);
+    Field field = newField(FN, "this is document one 2345", TextField.TYPE);
+    Field footerField = newField("footer", "a footer", TextField.TYPE);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(working copy)
@@ -30,6 +30,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.store.Directory;
@@ -67,14 +68,14 @@
     }
     for (int i = 0; i < NUM_DOCS; i++){
       Document doc = new Document();
-      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE_UNSTORED));
+      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE));
+      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE));
+      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE));
+      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE));
+      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE));
+      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE));
       if (i%2 == 0) {
-        doc.add(newField("sparse", String.valueOf(i), StringField.TYPE_UNSTORED));
+        doc.add(newField("sparse", String.valueOf(i), StringField.TYPE));
       }
 
       if (i%2 == 0) {
@@ -84,7 +85,7 @@
       // sometimes skip the field:
       if (random().nextInt(40) != 17) {
         unicodeStrings[i] = generateString(i);
-        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StringField.TYPE_STORED));
+        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StoredStringField.TYPE));
       }
 
       // sometimes skip the field:
@@ -92,7 +93,7 @@
         for (int j = 0; j < NUM_ORDS; j++) {
           String newValue = generateString(i);
           multiValued[i][j] = new BytesRef(newValue);
-          doc.add(newField("theRandomUnicodeMultiValuedField", newValue, StringField.TYPE_STORED));
+          doc.add(newField("theRandomUnicodeMultiValuedField", newValue, StoredStringField.TYPE));
         }
         Arrays.sort(multiValued[i]);
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java	(working copy)
@@ -90,7 +90,7 @@
       RandomIndexWriter writer = new RandomIndexWriter (random(), directory);
 
       Document doc = new Document();
-      doc.add(newField("field", "term", StringField.TYPE_UNSTORED));
+      doc.add(newField("field", "term", StringField.TYPE));
       writer.addDocument(doc);
 
       reader = writer.getReader();
@@ -134,10 +134,10 @@
     Directory d = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(newField("field", "a", StringField.TYPE_UNSTORED));
+    doc.add(newField("field", "a", StringField.TYPE));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "b", StringField.TYPE_UNSTORED));
+    doc.add(newField("field", "b", StringField.TYPE));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java	(working copy)
@@ -66,7 +66,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.KEYWORD, false))
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    Field field = newField(fieldName, "", StringField.TYPE_UNSTORED);
+    Field field = newField(fieldName, "", StringField.TYPE);
     doc.add(field);
     List<String> terms = new ArrayList<String>();
     int num = atLeast(200);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java	(working copy)
@@ -44,7 +44,7 @@
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     //writer.setUseCompoundFile(false);
     //writer.infoStream = System.out;
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
     customType.setStoreTermVectors(true);
     for (int i = 0; i < numDocs; i++) {
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(working copy)
@@ -19,21 +19,21 @@
 
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase;
 
 
 
@@ -67,7 +67,7 @@
     try {
       for (int i = 0; i < 60; i++) {//Simple docs
         Document doc = new Document();
-        doc.add(newField(FIELD, Integer.toString(i), StringField.TYPE_STORED));
+        doc.add(newField(FIELD, Integer.toString(i), StoredStringField.TYPE));
         writer.addDocument(doc);
       }
       if (fullMerge) {
Index: lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(working copy)
@@ -17,25 +17,25 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.text.DecimalFormat;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Norm;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
-import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.text.DecimalFormat;
-import java.io.IOException;
-
 /**
  * Test of the DisjunctionMaxQuery.
  * 
@@ -81,7 +81,7 @@
   public IndexReader r;
   public IndexSearcher s;
   
-  private static final FieldType nonAnalyzedType = new FieldType(TextField.TYPE_STORED);
+  private static final FieldType nonAnalyzedType = new FieldType(StoredTextField.TYPE);
   static {
     nonAnalyzedType.setTokenized(false);
   }
@@ -103,9 +103,9 @@
       d1.add(newField("id", "d1", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d1"));
       d1
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
+          .add(newField("hed", "elephant", StoredTextField.TYPE));// Field.Text("hed", "elephant"));
       d1
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+          .add(newField("dek", "elephant", StoredTextField.TYPE));// Field.Text("dek", "elephant"));
       writer.addDocument(d1);
     }
     
@@ -115,11 +115,11 @@
       d2.add(newField("id", "d2", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d2"));
       d2
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
-      d2.add(newField("dek", "albino", TextField.TYPE_STORED));// Field.Text("dek",
+          .add(newField("hed", "elephant", StoredTextField.TYPE));// Field.Text("hed", "elephant"));
+      d2.add(newField("dek", "albino", StoredTextField.TYPE));// Field.Text("dek",
                                                                                 // "albino"));
       d2
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+          .add(newField("dek", "elephant", StoredTextField.TYPE));// Field.Text("dek", "elephant"));
       writer.addDocument(d2);
     }
     
@@ -128,10 +128,10 @@
       Document d3 = new Document();
       d3.add(newField("id", "d3", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d3"));
-      d3.add(newField("hed", "albino", TextField.TYPE_STORED));// Field.Text("hed",
+      d3.add(newField("hed", "albino", StoredTextField.TYPE));// Field.Text("hed",
                                                                                 // "albino"));
       d3
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
+          .add(newField("hed", "elephant", StoredTextField.TYPE));// Field.Text("hed", "elephant"));
       writer.addDocument(d3);
     }
     
@@ -140,11 +140,11 @@
       Document d4 = new Document();
       d4.add(newField("id", "d4", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d4"));
-      d4.add(newField("hed", "albino", TextField.TYPE_STORED));// Field.Text("hed",
+      d4.add(newField("hed", "albino", StoredTextField.TYPE));// Field.Text("hed",
                                                                                 // "albino"));
       d4
           .add(newField("hed", "elephant", nonAnalyzedType));// Field.Text("hed", "elephant"));
-      d4.add(newField("dek", "albino", TextField.TYPE_STORED));// Field.Text("dek",
+      d4.add(newField("dek", "albino", StoredTextField.TYPE));// Field.Text("dek",
                                                                                 // "albino"));
       writer.addDocument(d4);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java	(working copy)
@@ -64,17 +64,17 @@
     int numDocs = atLeast(200);
     for (int i = 0; i < numDocs; i++) {
       Document document = new Document();
-      document.add(newField("english", English.intToEnglish(i), TextField.TYPE_UNSTORED));
-      document.add(newField("oddeven", (i % 2 == 0) ? "even" : "odd", TextField.TYPE_UNSTORED));
-      document.add(newField("byte", "" + ((byte) random().nextInt()), StringField.TYPE_UNSTORED));
-      document.add(newField("short", "" + ((short) random().nextInt()), StringField.TYPE_UNSTORED));
+      document.add(newField("english", English.intToEnglish(i), TextField.TYPE));
+      document.add(newField("oddeven", (i % 2 == 0) ? "even" : "odd", TextField.TYPE));
+      document.add(newField("byte", "" + ((byte) random().nextInt()), StringField.TYPE));
+      document.add(newField("short", "" + ((short) random().nextInt()), StringField.TYPE));
       document.add(new IntField("int", random().nextInt()));
       document.add(new LongField("long", random().nextLong()));
 
       document.add(new FloatField("float", random().nextFloat()));
       document.add(new DoubleField("double", random().nextDouble()));
-      document.add(newField("bytes", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
-      document.add(newField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
+      document.add(newField("bytes", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
+      document.add(newField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
       document.add(new DoubleField("double", random().nextDouble()));
 
       if (supportsDocValues) {
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(working copy)
@@ -529,8 +529,8 @@
 
     for (int d = -20; d <= 20; d++) {
       Document doc = new Document();
-      doc.add(newField("id",Integer.toString(d), StringField.TYPE_UNSTORED));
-      doc.add(newField("body","body", StringField.TYPE_UNSTORED));
+      doc.add(newField("id",Integer.toString(d), StringField.TYPE));
+      doc.add(newField("body","body", StringField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java	(working copy)
@@ -26,7 +26,7 @@
 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.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -53,7 +53,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setOmitNorms(true);
     Field field = newField("field", "", customType);
     doc.add(field);
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java	(working copy)
@@ -56,7 +56,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
 
     // we generate aweful prefixes: good for testing.
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(working copy)
@@ -24,7 +24,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -109,10 +109,10 @@
 
     for (int i = 0; i < docs.length; i++) {
       Document d = new Document();
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(StoredTextField.TYPE);
       ft.setIndexed(false);
       d.add(newField(FIELD_ID, Integer.toString(i), ft));
-      d.add(newField(FIELD_BODY, docs[i], TextField.TYPE_STORED));
+      d.add(newField(FIELD_BODY, docs[i], StoredTextField.TYPE));
       writer.addDocument(d);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(working copy)
@@ -17,26 +17,21 @@
  * limitations under the License.
  */
 
-import java.io.IOException;
 import java.util.ArrayList;
 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.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Scorer;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.spans.SpanOrQuery;
@@ -99,7 +94,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -121,7 +116,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -143,7 +138,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     ft.freeze();
     doc.add(newField("foo", "bar", ft));
@@ -167,7 +162,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.freeze();
     Field f = newField("foo", "bar", ft);
@@ -192,7 +187,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.setOmitNorms(true);
     ft.freeze();
@@ -222,7 +217,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     doc.add(newField("foo", "bar", ft));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.CannedTokenStream;
 import org.apache.lucene.analysis.Token;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
@@ -197,7 +198,7 @@
   
   private void add(String s, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_STORED));
+    doc.add(newField("body", s, StoredTextField.TYPE));
     writer.addDocument(doc);
   }
   
@@ -317,8 +318,8 @@
   private void add(String s, String type, RandomIndexWriter writer)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_STORED));
-    doc.add(newField("type", type, StringField.TYPE_UNSTORED));
+    doc.add(newField("body", s, StoredTextField.TYPE));
+    doc.add(newField("type", type, StringField.TYPE));
     writer.addDocument(doc);
   }
   
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(working copy)
@@ -17,15 +17,15 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Tests {@link PrefixQuery} class.
@@ -41,7 +41,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < categories.length; i++) {
       Document doc = new Document();
-      doc.add(newField("category", categories[i], StringField.TYPE_STORED));
+      doc.add(newField("category", categories[i], StoredStringField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(working copy)
@@ -21,7 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -55,23 +55,23 @@
     RandomIndexWriter writer = new RandomIndexWriter (random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
 
     Document doc = new Document();
-    doc.add (newField("field", "one two three four five", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "b", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three four five", StoredTextField.TYPE));
+    doc.add (newField("sorter", "b", StoredTextField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two three four", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "d", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three four", StoredTextField.TYPE));
+    doc.add (newField("sorter", "d", StoredTextField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two three y", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "a", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three y", StoredTextField.TYPE));
+    doc.add (newField("sorter", "a", StoredTextField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two x", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "c", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two x", StoredTextField.TYPE));
+    doc.add (newField("sorter", "c", StoredTextField.TYPE));
     writer.addDocument (doc);
 
     // tests here require single segment (eg try seed
Index: lucene/core/src/test/org/apache/lucene/search/TestNot.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNot.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestNot.java	(working copy)
@@ -17,14 +17,13 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.index.Term;
-import org.apache.lucene.util.LuceneTestCase;
-
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.util.LuceneTestCase;
 
 /** Similarity unit test.
  *
@@ -37,7 +36,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), store);
 
     Document d1 = new Document();
-    d1.add(newField("field", "a b", TextField.TYPE_STORED));
+    d1.add(newField("field", "a b", StoredTextField.TYPE));
 
     writer.addDocument(d1);
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java	(working copy)
@@ -72,19 +72,19 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory, analyzer);
     
     Document doc = new Document();
-    doc.add(newField("field", "one two three four five", TextField.TYPE_STORED));
-    doc.add(newField("repeated", "this is a repeated field - first part", TextField.TYPE_STORED));
-    IndexableField repeatedField = newField("repeated", "second part of a repeated field", TextField.TYPE_STORED);
+    doc.add(newField("field", "one two three four five", StoredTextField.TYPE));
+    doc.add(newField("repeated", "this is a repeated field - first part", StoredTextField.TYPE));
+    IndexableField repeatedField = newField("repeated", "second part of a repeated field", StoredTextField.TYPE);
     doc.add(repeatedField);
-    doc.add(newField("palindrome", "one two three two one", TextField.TYPE_STORED));
+    doc.add(newField("palindrome", "one two three two one", StoredTextField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", StoredTextField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     reader = writer.getReader();
@@ -226,7 +226,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory, 
         newIndexWriterConfig( Version.LUCENE_40, stopAnalyzer));
     Document doc = new Document();
-    doc.add(newField("field", "the stop words are here", TextField.TYPE_STORED));
+    doc.add(newField("field", "the stop words are here", StoredTextField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -260,12 +260,12 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     
     Document doc = new Document();
-    doc.add(newField("source", "marketing info", TextField.TYPE_STORED));
+    doc.add(newField("source", "marketing info", StoredTextField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("contents", "foobar", TextField.TYPE_STORED));
-    doc.add(newField("source", "marketing info", TextField.TYPE_STORED)); 
+    doc.add(newField("contents", "foobar", StoredTextField.TYPE));
+    doc.add(newField("source", "marketing info", StoredTextField.TYPE)); 
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
@@ -295,15 +295,15 @@
     writer = new RandomIndexWriter(random(), directory, 
         newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(OpenMode.CREATE));
     doc = new Document();
-    doc.add(newField("contents", "map entry woo", TextField.TYPE_STORED));
+    doc.add(newField("contents", "map entry woo", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "woo map entry", TextField.TYPE_STORED));
+    doc.add(newField("contents", "woo map entry", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "map foobarword entry woo", TextField.TYPE_STORED));
+    doc.add(newField("contents", "map foobarword entry woo", StoredTextField.TYPE));
     writer.addDocument(doc);
 
     reader = writer.getReader();
@@ -348,15 +348,15 @@
           .setSimilarity(new DefaultSimilarity()));
 
     Document doc = new Document();
-    doc.add(newField("field", "foo firstname lastname foo", TextField.TYPE_STORED));
+    doc.add(newField("field", "foo firstname lastname foo", StoredTextField.TYPE));
     writer.addDocument(doc);
     
     Document doc2 = new Document();
-    doc2.add(newField("field", "foo firstname zzz lastname foo", TextField.TYPE_STORED));
+    doc2.add(newField("field", "foo firstname zzz lastname foo", StoredTextField.TYPE));
     writer.addDocument(doc2);
     
     Document doc3 = new Document();
-    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", TextField.TYPE_STORED));
+    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", StoredTextField.TYPE));
     writer.addDocument(doc3);
     
     IndexReader reader = writer.getReader();
@@ -611,7 +611,7 @@
     RandomIndexWriter w  = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).setMergePolicy(newLogMergePolicy()));
     List<List<String>> docs = new ArrayList<List<String>>();
     Document d = new Document();
-    Field f = newField("f", "", TextField.TYPE_UNSTORED);
+    Field f = newField("f", "", TextField.TYPE);
     d.add(f);
 
     Random r = random();
Index: lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(working copy)
@@ -23,27 +23,28 @@
 import java.util.Collection;
 
 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.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReader;
-import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.search.payloads.PayloadSpanUtil;
 import org.apache.lucene.search.spans.MultiSpansWrapper;
 import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.search.spans.Spans;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
 
 /**
  * Term position unit test.
@@ -91,7 +92,7 @@
     Directory store = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), store, analyzer);
     Document d = new Document();
-    d.add(newField("field", "bogus", TextField.TYPE_STORED));
+    d.add(newField("field", "bogus", StoredTextField.TYPE));
     writer.addDocument(d);
     IndexReader reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(working copy)
@@ -24,14 +24,14 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -263,8 +263,8 @@
   private void insertDoc(IndexWriter writer, String content) throws IOException {
     Document doc = new Document();
 
-    doc.add(newField("id", "id" + docCount, StringField.TYPE_STORED));
-    doc.add(newField("content", content, TextField.TYPE_UNSTORED));
+    doc.add(newField("id", "id" + docCount, StoredStringField.TYPE));
+    doc.add(newField("content", content, TextField.TYPE));
 
     writer.addDocument(doc);
     docCount++;
Index: lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(working copy)
@@ -29,7 +29,6 @@
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
 
 @SuppressCodecs({ "SimpleText", "Memory" })
 public class TestSearchWithThreads extends LuceneTestCase {
@@ -53,7 +52,7 @@
     // TODO: replace w/ the @nightly test data; make this
     // into an optional @nightly stress test
     final Document doc = new Document();
-    final Field body = newField("body", "", TextField.TYPE_UNSTORED);
+    final Field body = newField("body", "", TextField.TYPE);
     doc.add(body);
     final StringBuilder sb = new StringBuilder();
     for(int docCount=0;docCount<NUM_DOCS;docCount++) {
Index: lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java	(working copy)
@@ -159,7 +159,7 @@
 
   private static Document makeDocument(String docText) {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f = new Field("f", docText, customType);
     doc.add(f);
@@ -234,7 +234,7 @@
   public void testSlopWithHoles() throws Exception {  
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f = new Field("lyrics", "", customType);
     Document doc = new Document();
@@ -272,7 +272,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("lyrics", document, new FieldType(TextField.TYPE_UNSTORED)));
+    doc.add(newField("lyrics", document, new FieldType(TextField.TYPE)));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -325,7 +325,7 @@
 
      RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
      Document doc = new Document();
-     doc.add(newField("lyrics", document, new FieldType(TextField.TYPE_UNSTORED)));
+     doc.add(newField("lyrics", document, new FieldType(TextField.TYPE)));
      iw.addDocument(doc);
      IndexReader ir = iw.getReader();
      iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(working copy)
@@ -17,20 +17,20 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.text.DecimalFormat;
+import java.util.Random;
+
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
-import java.text.DecimalFormat;
-import java.util.Random;
-
 /** Test that BooleanQuery.setMinimumNumberShouldMatch works.
  */
 public class TestBooleanMinShouldMatch extends LuceneTestCase {
@@ -57,10 +57,10 @@
 
         for (int i = 0; i < data.length; i++) {
             Document doc = new Document();
-            doc.add(newField("id", String.valueOf(i), StringField.TYPE_STORED));//Field.Keyword("id",String.valueOf(i)));
-            doc.add(newField("all", "all", StringField.TYPE_STORED));//Field.Keyword("all","all"));
+            doc.add(newField("id", String.valueOf(i), StoredStringField.TYPE));//Field.Keyword("id",String.valueOf(i)));
+            doc.add(newField("all", "all", StoredStringField.TYPE));//Field.Keyword("all","all"));
             if (null != data[i]) {
-                doc.add(newField("data", data[i], TextField.TYPE_STORED));//Field.Text("data",data[i]));
+                doc.add(newField("data", data[i], StoredTextField.TYPE));//Field.Text("data",data[i]));
             }
             w.addDocument(doc);
         }
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java	(working copy)
@@ -17,14 +17,13 @@
  */
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 public class TestBooleanOr extends LuceneTestCase {
 
@@ -141,11 +140,11 @@
     d.add(newField(
         FIELD_T,
         "Optimize not deleting all files",
-        TextField.TYPE_STORED));
+        StoredTextField.TYPE));
     d.add(newField(
         FIELD_C,
         "Deleted When I run an optimize in our production environment.",
-        TextField.TYPE_STORED));
+        StoredTextField.TYPE));
 
     //
     writer.addDocument(d);
Index: lucene/core/src/test/org/apache/lucene/search/TestDateSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(working copy)
@@ -19,17 +19,16 @@
 
 import java.util.Arrays;
 
-import org.apache.lucene.index.Term;
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Test date sorting, i.e. auto-sorting of fields with type "long".
@@ -104,12 +103,12 @@
     Document document = new Document();
 
     // Add the text field.
-    Field textField = newField(TEXT_FIELD, text, TextField.TYPE_STORED);
+    Field textField = newField(TEXT_FIELD, text, StoredTextField.TYPE);
     document.add(textField);
 
     // Add the date/time field.
     String dateTimeString = DateTools.timeToString(time, DateTools.Resolution.SECOND);
-    Field dateTimeField = newField(DATE_TIME_FIELD, dateTimeString, StringField.TYPE_STORED);
+    Field dateTimeField = newField(DATE_TIME_FIELD, dateTimeString, StoredStringField.TYPE);
     document.add(dateTimeField);
 
     return document;
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(working copy)
@@ -17,26 +17,25 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
+import junit.framework.Assert;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import junit.framework.Assert;
-
 public class TestMultiTermConstantScore extends BaseTestRangeFilter {
 
   /** threshold for comparing floats */
@@ -60,14 +59,14 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, 
             new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)).setMergePolicy(newLogMergePolicy()));
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
     for (int i = 0; i < data.length; i++) {
       Document doc = new Document();
       doc.add(newField("id", String.valueOf(i), customType));// Field.Keyword("id",String.valueOf(i)));
       doc.add(newField("all", "all", customType));// Field.Keyword("all","all"));
       if (null != data[i]) {
-        doc.add(newField("data", data[i], TextField.TYPE_STORED));// Field.Text("data",data[i]));
+        doc.add(newField("data", data[i], StoredTextField.TYPE));// Field.Text("data",data[i]));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(working copy)
@@ -23,7 +23,7 @@
 import java.util.List;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -45,7 +45,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < values.length; i++) {
       Document doc = new Document();
-      doc.add(newField(FIELD, values[i], StringField.TYPE_STORED));
+      doc.add(newField(FIELD, values[i], StoredStringField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader ir = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(working copy)
@@ -103,7 +103,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newField("c", "val", StringField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -129,7 +129,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newField("c", "val", StringField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java	(working copy)
@@ -17,21 +17,20 @@
  * limitations under the License.
  */
 
+import java.util.Random;
+
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockTokenizer;
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.English;
-
 import org.apache.lucene.util.LuceneTestCase;
 import org.junit.BeforeClass;
 
-import java.util.Random;
-
 public class TestThreadedForceMerge extends LuceneTestCase {
 
   private static Analyzer ANALYZER;
@@ -69,7 +68,7 @@
 
       ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(1000);
 
-      final FieldType customType = new FieldType(StringField.TYPE_STORED);
+      final FieldType customType = new FieldType(StoredStringField.TYPE);
       customType.setOmitNorms(true);
       
       for(int i=0;i<200;i++) {
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java	(working copy)
@@ -92,7 +92,7 @@
       Random random = LuceneTestCase.random();
       try {
         Document doc = new Document();
-        doc.add(new Field("id", "1", TextField.TYPE_UNSTORED));
+        doc.add(new Field("id", "1", TextField.TYPE));
         writer.addDocument(doc);
         holder.reader = currentReader = writer.getReader(true);
         Term term = new Term("id");
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(working copy)
@@ -32,8 +32,8 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.ScoreDoc;
@@ -106,9 +106,9 @@
     DirectoryReader reader = DirectoryReader.open(dir);
     try {
       int M = 3;
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setTokenized(false);
-      FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType2 = new FieldType(StoredTextField.TYPE);
       customType2.setTokenized(false);
       customType2.setOmitNorms(true);
       FieldType customType3 = new FieldType();
@@ -482,18 +482,18 @@
     Document doc = new Document();
     sb.append("a");
     sb.append(n);
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setTokenized(false);
     customType2.setOmitNorms(true);
     FieldType customType3 = new FieldType();
     customType3.setStored(true);
-    doc.add(new Field("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(new StoredTextField("field1", sb.toString()));
     doc.add(new Field("fielda", sb.toString(), customType2));
     doc.add(new Field("fieldb", sb.toString(), customType3));
     sb.append(" b");
     sb.append(n);
     for (int i = 1; i < numFields; i++) {
-      doc.add(new Field("field" + (i+1), sb.toString(), TextField.TYPE_STORED));
+      doc.add(new StoredTextField("field" + (i+1), sb.toString()));
     }
     return doc;
   }
@@ -591,7 +591,7 @@
     );
     for(int i=0;i<4;i++) {
       Document doc = new Document();
-      doc.add(newField("id", ""+i, StringField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+i, StringField.TYPE));
       writer.addDocument(doc);
       Map<String,String> data = new HashMap<String,String>();
       data.put("index", i+"");
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(working copy)
@@ -22,9 +22,9 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -123,7 +123,7 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d3 = new Document();
 
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", StoredTextField.TYPE));
     w2.addDocument(d3);
     w2.close();
     
@@ -297,28 +297,28 @@
     dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", StoredTextField.TYPE));
+    d1.add(newField("f2", "v1", StoredTextField.TYPE));
+    d1.add(newField("f3", "v1", StoredTextField.TYPE));
+    d1.add(newField("f4", "v1", StoredTextField.TYPE));
     w.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", StoredTextField.TYPE));
+    d2.add(newField("f2", "v2", StoredTextField.TYPE));
+    d2.add(newField("f3", "v2", StoredTextField.TYPE));
+    d2.add(newField("f4", "v2", StoredTextField.TYPE));
     w.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f1", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f2", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f1", "v3", StoredTextField.TYPE));
+    d3.add(newField("f2", "v3", StoredTextField.TYPE));
+    d3.add(newField("f3", "v3", StoredTextField.TYPE));
+    d3.add(newField("f4", "v3", StoredTextField.TYPE));
     w.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f1", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f2", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f1", "v4", StoredTextField.TYPE));
+    d4.add(newField("f2", "v4", StoredTextField.TYPE));
+    d4.add(newField("f3", "v4", StoredTextField.TYPE));
+    d4.add(newField("f4", "v4", StoredTextField.TYPE));
     w.addDocument(d4);
     w.close();
 
@@ -357,22 +357,22 @@
     IndexWriter w1 = new IndexWriter(dir1, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", StoredTextField.TYPE));
+    d1.add(newField("f2", "v1", StoredTextField.TYPE));
     w1.addDocument(d1);
     w1.commit();
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", StoredTextField.TYPE));
+    d2.add(newField("f2", "v2", StoredTextField.TYPE));
     w1.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f1", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f2", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f1", "v3", StoredTextField.TYPE));
+    d3.add(newField("f2", "v3", StoredTextField.TYPE));
     w1.addDocument(d3);
     w1.commit();
     Document d4 = new Document();
-    d4.add(newField("f1", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f2", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f1", "v4", StoredTextField.TYPE));
+    d4.add(newField("f2", "v4", StoredTextField.TYPE));
     w1.addDocument(d4);
     w1.close();
     return dir1;
@@ -384,22 +384,22 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f3", "v1", StoredTextField.TYPE));
+    d1.add(newField("f4", "v1", StoredTextField.TYPE));
     w2.addDocument(d1);
     w2.commit();
     Document d2 = new Document();
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f3", "v2", StoredTextField.TYPE));
+    d2.add(newField("f4", "v2", StoredTextField.TYPE));
     w2.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v3", StoredTextField.TYPE));
+    d3.add(newField("f4", "v3", StoredTextField.TYPE));
     w2.addDocument(d3);
     w2.commit();
     Document d4 = new Document();
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v4", StoredTextField.TYPE));
+    d4.add(newField("f4", "v4", StoredTextField.TYPE));
     w2.addDocument(d4);
     w2.close();
     return dir2;
@@ -411,22 +411,22 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f3", "v1", StoredTextField.TYPE));
+    d1.add(newField("f4", "v1", StoredTextField.TYPE));
     w2.addDocument(d1);
     w2.commit();
     Document d2 = new Document();
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f3", "v2", StoredTextField.TYPE));
+    d2.add(newField("f4", "v2", StoredTextField.TYPE));
     w2.addDocument(d2);
     w2.commit();
     Document d3 = new Document();
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v3", StoredTextField.TYPE));
+    d3.add(newField("f4", "v3", StoredTextField.TYPE));
     w2.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v4", StoredTextField.TYPE));
+    d4.add(newField("f4", "v4", StoredTextField.TYPE));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java	(working copy)
@@ -17,17 +17,17 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Random;
-import java.io.IOException;
 
+import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.ThreadInterruptedException;
 import org.junit.Test;
@@ -110,7 +110,7 @@
         @Override
         public void run() {
           Document doc = new Document();
-          FieldType customType = new FieldType(TextField.TYPE_STORED);
+          FieldType customType = new FieldType(StoredTextField.TYPE);
           customType.setStoreTermVectors(true);
           customType.setStoreTermVectorPositions(true);
           customType.setStoreTermVectorOffsets(true);
@@ -155,7 +155,7 @@
     // final segment, so deletion policy has a chance to
     // delete again:
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(working copy)
@@ -89,7 +89,7 @@
       // Update all 100 docs...
       for(int i=0; i<100; i++) {
         Document d = new Document();
-        d.add(new Field("id", Integer.toString(i), StringField.TYPE_STORED));
+        d.add(new StoredStringField("id", Integer.toString(i)));
         d.add(new TextField("contents", English.intToEnglish(i+10*count)));
         writer.updateDocument(new Term("id", Integer.toString(i)), d);
       }
@@ -129,8 +129,8 @@
     // Establish a base index of 100 docs:
     for(int i=0;i<100;i++) {
       Document d = new Document();
-      d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-      d.add(newField("contents", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      d.add(newField("id", Integer.toString(i), StoredStringField.TYPE));
+      d.add(newField("contents", English.intToEnglish(i), TextField.TYPE));
       if ((i-1)%7 == 0) {
         writer.commit();
       }
Index: lucene/core/src/test/org/apache/lucene/index/TestNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.Source;
 import org.apache.lucene.index.DocValues.Type;
@@ -67,8 +68,8 @@
     config.setSimilarity(new CustomNormEncodingSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
-    Field bar = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
+    Field bar = newField("bar", "", TextField.TYPE);
     doc.add(foo);
     doc.add(bar);
     
@@ -188,8 +189,7 @@
     for (int i = 0; i < num; i++) {
       Document doc = docs.nextDoc();
       int boost = writeNorms ? 1 + random().nextInt(255) : 0;
-      Field f = new Field(byteTestField, "" + boost,
-          TextField.TYPE_STORED);
+      Field f = new StoredTextField(byteTestField, "" + boost);
       f.setBoost(boost);
       doc.add(f);
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(working copy)
@@ -25,7 +25,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -194,7 +194,7 @@
               assert fieldUpto < fieldCount;
               if (fieldUpto == 0) {
                 fieldUpto = 1;
-                return newField("id", ""+finalDocCount, StringField.TYPE_STORED);
+                return newField("id", ""+finalDocCount, StoredStringField.TYPE);
               } else {
                 return new MyField(finalBaseCount + (fieldUpto++-1));
               }
Index: lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java	(working copy)
@@ -37,9 +37,9 @@
       RandomIndexWriter w = new RandomIndexWriter(random(), dir);
       final Set<Integer> aDocs = new HashSet<Integer>();
       final Document doc = new Document();
-      final Field f = newField("field", "", StringField.TYPE_UNSTORED);
+      final Field f = newField("field", "", StringField.TYPE);
       doc.add(f);
-      final Field idField = newField("id", "", StringField.TYPE_STORED);
+      final Field idField = newField("id", "", StoredStringField.TYPE);
       doc.add(idField);
       int num = atLeast(4097);
       if (VERBOSE) {
Index: lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(working copy)
@@ -21,9 +21,10 @@
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -132,15 +133,15 @@
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     Document d1 = new Document();
-    d1.add(newField("default","one two", TextField.TYPE_STORED));
+    d1.add(newField("default","one two", StoredTextField.TYPE));
     writer.addDocument(d1);
 
     Document d2 = new Document();
-    d2.add(newField("default","one three", TextField.TYPE_STORED));
+    d2.add(newField("default","one three", StoredTextField.TYPE));
     writer.addDocument(d2);
 
     Document d3 = new Document();
-    d3.add(newField("default","two four", TextField.TYPE_STORED));
+    d3.add(newField("default","two four", StoredTextField.TYPE));
     writer.addDocument(d3);
 
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(working copy)
@@ -73,7 +73,7 @@
     Term term = new Term("test", "a");
     for (int i = 0; i < 5000; i++) {
       Document d1 = new Document();
-      d1.add(newField(term.field(), term.text(), TextField.TYPE_UNSTORED));
+      d1.add(newField(term.field(), term.text(), TextField.TYPE));
       writer.addDocument(d1);
     }
     writer.commit();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(working copy)
@@ -27,7 +27,8 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -119,8 +120,8 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
 
     Document doc = new Document();
-    doc.add(newField("repeated", "repeated one", TextField.TYPE_STORED));
-    doc.add(newField("repeated", "repeated two", TextField.TYPE_STORED));
+    doc.add(newField("repeated", "repeated one", StoredTextField.TYPE));
+    doc.add(newField("repeated", "repeated two", StoredTextField.TYPE));
 
     writer.addDocument(doc);
     writer.commit();
@@ -192,7 +193,7 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
 
     Document doc = new Document();
-    doc.add(newField("f1", "a 5 a a", TextField.TYPE_STORED));
+    doc.add(newField("f1", "a 5 a a", StoredTextField.TYPE));
 
     writer.addDocument(doc);
     writer.commit();
@@ -269,15 +270,15 @@
   public void testMixedTermVectorSettingsSameField() throws Exception {
     Document doc = new Document();
     // f1 first without tv then with tv
-    doc.add(newField("f1", "v1", StringField.TYPE_STORED));
-    FieldType customType2 = new FieldType(StringField.TYPE_STORED);
+    doc.add(newField("f1", "v1", StoredStringField.TYPE));
+    FieldType customType2 = new FieldType(StoredStringField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorOffsets(true);
     customType2.setStoreTermVectorPositions(true);
     doc.add(newField("f1", "v2", customType2));
     // f2 first with tv then without tv
     doc.add(newField("f2", "v1", customType2));
-    doc.add(newField("f2", "v2", StringField.TYPE_STORED));
+    doc.add(newField("f2", "v2", StoredStringField.TYPE));
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
@@ -306,14 +307,14 @@
   public void testLUCENE_1590() throws Exception {
     Document doc = new Document();
     // f1 has no norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     FieldType customType2 = new FieldType();
     customType2.setStored(true);
     doc.add(newField("f1", "v1", customType));
     doc.add(newField("f1", "v2", customType2));
     // f2 has no TF
-    FieldType customType3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType3 = new FieldType(TextField.TYPE);
     customType3.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field f = newField("f2", "v1", customType3);
     doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(working copy)
@@ -26,16 +26,16 @@
 import java.util.Map;
 
 import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -96,15 +96,15 @@
         IndexWriter writer = new IndexWriter(ram, newIndexWriterConfig( TEST_VERSION_CURRENT, analyzer));
         Document d = new Document();
         // this field won't have any payloads
-        d.add(newField("f1", "This field has no payloads", TextField.TYPE_UNSTORED));
+        d.add(newField("f1", "This field has no payloads", TextField.TYPE));
         // this field will have payloads in all docs, however not for all term positions,
         // so this field is used to check if the DocumentWriter correctly enables the payloads bit
         // even if only some term positions have payloads
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs NO PAYLOAD", TextField.TYPE_UNSTORED));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs NO PAYLOAD", TextField.TYPE));
         // this field is used to verify if the SegmentMerger enables payloads for a field if it has payloads 
         // enabled in only some documents
-        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE_UNSTORED));
+        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE));
         // only add payload data for field f2
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         writer.addDocument(d);
@@ -124,10 +124,10 @@
         writer = new IndexWriter(ram, newIndexWriterConfig( TEST_VERSION_CURRENT,
             analyzer).setOpenMode(OpenMode.CREATE));
         d = new Document();
-        d.add(newField("f1", "This field has no payloads", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE_UNSTORED));
+        d.add(newField("f1", "This field has no payloads", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE));
         // add payload data for field f2 and f3
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         analyzer.setPayloadData("f3", "somedata".getBytes(), 0, 3);
@@ -184,7 +184,7 @@
         byte[] payloadData = generateRandomData(payloadDataLength);
         
         Document d = new Document();
-        d.add(newField(fieldName, content, TextField.TYPE_UNSTORED));
+        d.add(newField(fieldName, content, TextField.TYPE));
         // add the same document multiple times to have the same payload lengths for all
         // occurrences within two consecutive skip intervals
         int offset = 0;
@@ -318,7 +318,7 @@
         String singleTerm = "lucene";
         
         d = new Document();
-        d.add(newField(fieldName, singleTerm, TextField.TYPE_UNSTORED));
+        d.add(newField(fieldName, singleTerm, TextField.TYPE));
         // add a payload whose length is greater than the buffer size of BufferedIndexOutput
         payloadData = generateRandomData(2000);
         analyzer.setPayloadData(fieldName, payloadData, 100, 1500);
@@ -615,14 +615,14 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
                                                      new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true));
     Document doc = new Document();
-    doc.add(new Field("hasMaybepayload", "here we go", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("hasMaybepayload", "here we go"));
     writer.addDocument(doc);
     writer.close();
 
     writer = new RandomIndexWriter(random(), dir,
                                    new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true));
     doc = new Document();
-    doc.add(new Field("hasMaybepayload2", "here we go", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("hasMaybepayload2", "here we go"));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java	(working copy)
@@ -340,7 +340,7 @@
             try {
               final Document doc = new Document();
               DirectoryReader r = DirectoryReader.open(dir);
-              Field f = newField("f", "", StringField.TYPE_UNSTORED);
+              Field f = newField("f", "", StringField.TYPE);
               doc.add(f);
               int count = 0;
               do {
Index: lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(working copy)
@@ -17,15 +17,14 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.store.*;
 import org.apache.lucene.util.*;
-import org.apache.lucene.store.*;
-
 import org.junit.Test;
 
-import java.io.IOException;
-
 public class TestIsCurrent extends LuceneTestCase {
 
   private RandomIndexWriter writer;
@@ -42,7 +41,7 @@
 
     // write document
     Document doc = new Document();
-    doc.add(newField("UUID", "1", TextField.TYPE_STORED));
+    doc.add(newField("UUID", "1", StoredTextField.TYPE));
     writer.addDocument(doc);
     writer.commit();
   }
Index: lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(working copy)
@@ -33,15 +33,15 @@
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.ShortDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
-import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.Source;
 import org.apache.lucene.index.DocValues.Type;
 import org.apache.lucene.store.ByteArrayDataOutput;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 @SuppressCodecs("Lucene3x")
 public class TestTypePromotion extends LuceneTestCase {
@@ -228,7 +228,7 @@
 
     for (int i = offset; i < offset + num; i++) {
       Document doc = new Document();
-      doc.add(new Field("id", i + "", TextField.TYPE_STORED));
+      doc.add(new StoredTextField("id", i + ""));
       switch (valueType) {
       case VAR_INTS:
         // TODO: can we do nextLong()?
Index: lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(working copy)
@@ -22,7 +22,7 @@
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.ScoreDoc;
@@ -31,8 +31,8 @@
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util._TestUtil;
 
 /**
@@ -97,7 +97,7 @@
                 content = this.term3 + " " + this.term2;
             }
 
-            doc.add(newField(this.field, content, TextField.TYPE_STORED));
+            doc.add(newField(this.field, content, StoredTextField.TYPE));
             writer.addDocument(doc);
         }
         
@@ -146,7 +146,7 @@
         IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
         for (int i = 0; i < 10; i++) {
             Document doc = new Document();
-            doc.add(newField(this.field, "a b", TextField.TYPE_STORED));
+            doc.add(newField(this.field, "a b", StoredTextField.TYPE));
             writer.addDocument(doc);
         }
         
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(working copy)
@@ -30,7 +30,6 @@
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.search.similarities.TFIDFSimilarity;
 import org.apache.lucene.store.Directory;
 
@@ -50,8 +49,8 @@
     @Override public float scorePayload(int doc, int start, int end, BytesRef payload) { return 1.0f; }
   }
 
-  private static final FieldType omitType = new FieldType(TextField.TYPE_UNSTORED);
-  private static final FieldType normalType = new FieldType(TextField.TYPE_UNSTORED);
+  private static final FieldType omitType = new FieldType(TextField.TYPE);
+  private static final FieldType normalType = new FieldType(TextField.TYPE);
   
   static {
     omitType.setIndexOptions(IndexOptions.DOCS_ONLY);
@@ -229,7 +228,7 @@
     // now add some documents with positions, and check
     // there is no prox after full merge
     d = new Document();
-    f1 = newField("f1", "This field has positions", TextField.TYPE_UNSTORED);
+    f1 = newField("f1", "This field has positions", TextField.TYPE);
     d.add(f1);
     
     for(int i=0;i<30;i++)
@@ -430,7 +429,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.freeze();
     Field f = newField("foo", "bar", ft);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(working copy)
@@ -223,7 +223,7 @@
 
   private void addDoc(IndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(working copy)
@@ -21,7 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
@@ -44,8 +44,8 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     doc = new Document();
-    doc.add(newField("field1", "the quick brown fox jumps", TextField.TYPE_STORED));
-    doc.add(newField("field2", "the quick brown fox jumps", TextField.TYPE_STORED));
+    doc.add(newField("field1", "the quick brown fox jumps", StoredTextField.TYPE));
+    doc.add(newField("field2", "the quick brown fox jumps", StoredTextField.TYPE));
     iw1.addDocument(doc);
 
     iw1.close();
@@ -54,8 +54,8 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     doc = new Document();
-    doc.add(newField("field1", "the fox jumps over the lazy dog", TextField.TYPE_STORED));
-    doc.add(newField("field3", "the fox jumps over the lazy dog", TextField.TYPE_STORED));
+    doc.add(newField("field1", "the fox jumps over the lazy dog", StoredTextField.TYPE));
+    doc.add(newField("field3", "the fox jumps over the lazy dog", StoredTextField.TYPE));
     iw2.addDocument(doc);
 
     iw2.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(working copy)
@@ -50,7 +50,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     for (int i = 0; i < 39; i++) {
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setOmitNorms(true);
       doc.add(newField(fieldName, "1 2 3 4 5 6 7 8 9 10 "
           + "1 2 3 4 5 6 7 8 9 10 " + "1 2 3 4 5 6 7 8 9 10 "
@@ -110,7 +110,7 @@
     int max = 1051;
     int term = random().nextInt(max);
     Integer[][] positionsInDoc = new Integer[numDocs][];
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
@@ -193,7 +193,7 @@
     int max = 15678;
     int term = random().nextInt(max);
     int[] freqInDoc = new int[numDocs];
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
@@ -270,7 +270,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     int howMany = 1000;
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < 39; i++) {
       Document doc = new Document();
@@ -326,7 +326,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", StringField.TYPE));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
@@ -351,7 +351,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
Index: lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(working copy)
@@ -31,6 +31,7 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
@@ -39,8 +40,8 @@
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util._TestUtil;
 
 // TODO: we really need to test indexingoffsets, but then getting only docs / docs + freqs.
@@ -61,7 +62,7 @@
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
     Document doc = new Document();
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
     if (random().nextBoolean()) {
       ft.setStoreTermVectors(true);
@@ -129,7 +130,7 @@
     iwc.setMergePolicy(newLogMergePolicy()); // will rely on docids a bit for skipping
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     ft.setIndexOptions(FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
     if (random().nextBoolean()) {
       ft.setStoreTermVectors(true);
@@ -224,7 +225,7 @@
     final int numDocs = atLeast(20);
     //final int numDocs = atLeast(5);
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
 
     // TODO: randomize what IndexOptions we use; also test
     // changing this up in one IW buffered segment...:
@@ -361,7 +362,7 @@
         ft.setStored(true);
         doc.add(new Field("foo", "boo!", ft));
       } else {
-        FieldType ft = new FieldType(TextField.TYPE_STORED);
+        FieldType ft = new FieldType(StoredTextField.TYPE);
         ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
         if (random().nextBoolean()) {
           // store some term vectors for the checkindex cross-check
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(working copy)
@@ -15,22 +15,24 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.AlreadyClosedException;
-import org.apache.lucene.store.Directory;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Random;
+
 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.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.store.AlreadyClosedException;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Random;
 
-
 public class TestIndexWriterMerging extends LuceneTestCase
 {
 
@@ -111,7 +113,7 @@
     for (int i = start; i < (start + numDocs); i++)
     {
       Document temp = new Document();
-      temp.add(newField("count", (""+i), StringField.TYPE_STORED));
+      temp.add(newField("count", (""+i), StoredStringField.TYPE));
 
       writer.addDocument(temp);
     }
@@ -131,13 +133,13 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
     customType1.setStoreTermVectorOffsets(true);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     Field storedField = newField("stored", "stored", customType);
     document.add(storedField);
@@ -194,7 +196,7 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
@@ -204,7 +206,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
@@ -259,7 +261,7 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
@@ -270,7 +272,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
@@ -343,7 +345,7 @@
     IndexWriter iw = new IndexWriter(dir, conf);
     Document document = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     
     document.add(newField("tvtest", "a b c", customType));
@@ -357,7 +359,7 @@
     Directory directory = newDirectory();
 
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
 
     Field idField = newField("id", "", customType);
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(working copy)
@@ -135,7 +135,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", value, TextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(working copy)
@@ -19,15 +19,16 @@
 
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 public class TestOmitNorms extends LuceneTestCase {
   // Tests whether the DocumentWriter correctly enable the
@@ -39,11 +40,11 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -57,7 +58,7 @@
     // Reverse
     d.add(newField("f1", "This field has norms", customType));
         
-    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE_UNSTORED));
+    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE));
         
     writer.addDocument(d);
 
@@ -89,11 +90,11 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -109,7 +110,7 @@
     // Reverese
     d.add(newField("f1", "This field has norms", customType));
         
-    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE_UNSTORED));
+    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE));
         
     for (int i = 0; i < 30; i++) {
       writer.addDocument(d);
@@ -144,12 +145,12 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -196,7 +197,7 @@
     lmp.setUseCompoundFile(false);
     Document d = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f1 = newField("f1", "This field has no norms", customType);
     d.add(f1);
@@ -226,10 +227,10 @@
    */
   public void testOmitNormsCombos() throws IOException {
     // indexed with norms
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     Field norms = new Field("foo", "a", customType);
     // indexed without norms
-    FieldType customType1 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType1 = new FieldType(StoredTextField.TYPE);
     customType1.setOmitNorms(true);
     Field noNorms = new Field("foo", "a", customType1);
     // not indexed, but stored
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(working copy)
@@ -280,7 +280,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", value, TextField.TYPE));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(working copy)
@@ -164,7 +164,7 @@
       System.out.println("TEST: addDoc id:" + id + " terms=" + terms);
     }
     for (String s2 : terms) {
-      doc.add(newField("f", s2, StringField.TYPE_UNSTORED));
+      doc.add(newField("f", s2, StringField.TYPE));
       termToID.put(new BytesRef(s2), id);
     }
     w.addDocument(doc);
@@ -368,7 +368,7 @@
     final RandomIndexWriter w = new RandomIndexWriter(random(), d, iwc);
     for(String term : terms) {
       Document doc = new Document();
-      Field f = newField(FIELD, term, StringField.TYPE_UNSTORED);
+      Field f = newField(FIELD, term, StringField.TYPE);
       doc.add(f);
       w.addDocument(doc);
     }
@@ -507,9 +507,9 @@
     d = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(newField("field", "one two three", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "one two three", TextField.TYPE));
     doc = new Document();
-    doc.add(newField("field2", "one two three", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "one two three", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
     w.deleteDocuments(new Term("field", "one"));
@@ -730,15 +730,15 @@
     iwc.setMergePolicy(new LogDocMergePolicy());
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
     Document doc = new Document();
-    doc.add(newField("field", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "aaa", TextField.TYPE));
     w.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("field", "bbb", StringField.TYPE_UNSTORED));
+    doc.add(newField("field", "bbb", StringField.TYPE));
     w.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("field", "ccc", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "ccc", TextField.TYPE));
     w.addDocument(doc);
 
     w.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java	(working copy)
@@ -60,7 +60,7 @@
     }
 
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field field = new Field("field", new MyTokenStream(), ft);
Index: lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java	(working copy)
@@ -23,8 +23,8 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
@@ -60,8 +60,8 @@
               int docCount = 0;
               while (System.currentTimeMillis() < stopTime) {
                 final Document doc = new Document();
-                doc.add(newField("dc", ""+docCount, StringField.TYPE_STORED));
-                doc.add(newField("field", "here is some text", TextField.TYPE_STORED));
+                doc.add(newField("dc", ""+docCount, StoredStringField.TYPE));
+                doc.add(newField("field", "here is some text", StoredTextField.TYPE));
                 w.addDocument(doc);
 
                 if (docCount % 13 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java	(working copy)
@@ -17,19 +17,19 @@
  * limitations under the License.
  */
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.ArrayList;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.LuceneTestCase;
 
 public class TestCheckIndex extends LuceneTestCase {
 
@@ -38,7 +38,7 @@
     IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     for(int i=0;i<19;i++) {
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java	(working copy)
@@ -52,7 +52,7 @@
     Directory dir = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     field.setStringValue("a b c");
     w.addDocument(doc);
@@ -137,7 +137,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
@@ -234,7 +234,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(working copy)
@@ -27,7 +27,6 @@
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
 
 /**
  * Some tests for {@link ParallelAtomicReader}s with empty indexes
@@ -94,14 +93,14 @@
       }
       IndexWriter iw = new IndexWriter(rd1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      Field idField = newField("id", "", TextField.TYPE_UNSTORED);
+      Field idField = newField("id", "", TextField.TYPE);
       doc.add(idField);
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       doc.add(newField("test", "", customType));
       idField.setStringValue("1");
       iw.addDocument(doc);
-      doc.add(newField("test", "", TextField.TYPE_UNSTORED));
+      doc.add(newField("test", "", TextField.TYPE));
       idField.setStringValue("2");
       iw.addDocument(doc);
       iw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java	(working copy)
@@ -20,8 +20,6 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -99,7 +97,7 @@
 
     Document doc = new Document();
     for(int i=0;i<testFields.length;i++) {
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       if (testFieldsStorePos[i] && testFieldsStoreOff[i]) {
         customType.setStoreTermVectors(true);
         customType.setStoreTermVectorPositions(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCodecs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestCodecs.java	(working copy)
@@ -45,7 +45,6 @@
 import org.apache.lucene.util.InfoStream;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.OpenBitSet;
-import org.apache.lucene.util.Version;
 import org.apache.lucene.util._TestUtil;
 import org.junit.BeforeClass;
 
@@ -352,7 +351,7 @@
       pq.add(new Term("content", "ccc"));
 
       final Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setOmitNorms(true);
       doc.add(newField("content", "aaa bbb ccc ddd", customType));
 
Index: lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(working copy)
@@ -87,7 +87,7 @@
 
     Document doc = new Document();
     
-    doc.add(newField(field,val, StringField.TYPE_UNSTORED));
+    doc.add(newField(field,val, StringField.TYPE));
     IndexWriter writer = new IndexWriter(
         dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(working copy)
@@ -22,9 +22,9 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
+import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -122,7 +122,7 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d3 = new Document();
 
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", StoredTextField.TYPE));
     w2.addDocument(d3);
     w2.close();
     
@@ -238,16 +238,16 @@
     dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", StoredTextField.TYPE));
+    d1.add(newField("f2", "v1", StoredTextField.TYPE));
+    d1.add(newField("f3", "v1", StoredTextField.TYPE));
+    d1.add(newField("f4", "v1", StoredTextField.TYPE));
     w.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", StoredTextField.TYPE));
+    d2.add(newField("f2", "v2", StoredTextField.TYPE));
+    d2.add(newField("f3", "v2", StoredTextField.TYPE));
+    d2.add(newField("f4", "v2", StoredTextField.TYPE));
     w.addDocument(d2);
     w.close();
 
@@ -269,12 +269,12 @@
     Directory dir1 = newDirectory();
     IndexWriter w1 = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", StoredTextField.TYPE));
+    d1.add(newField("f2", "v1", StoredTextField.TYPE));
     w1.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", StoredTextField.TYPE));
+    d2.add(newField("f2", "v2", StoredTextField.TYPE));
     w1.addDocument(d2);
     w1.close();
     return dir1;
@@ -284,12 +284,12 @@
     Directory dir2 = newDirectory();
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d3 = new Document();
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", StoredTextField.TYPE));
+    d3.add(newField("f4", "v1", StoredTextField.TYPE));
     w2.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v2", StoredTextField.TYPE));
+    d4.add(newField("f4", "v2", StoredTextField.TYPE));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(working copy)
@@ -26,7 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DocumentsWriterPerThread.IndexingChain;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
@@ -280,7 +280,7 @@
     IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
     Directory dir = newDirectory();
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_STORED));
+    doc.add(newField("foo", "bar", StoredTextField.TYPE));
     RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
     riw.addDocument(doc);
     riw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(working copy)
@@ -45,7 +45,8 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.PackedLongDocValuesField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -179,8 +180,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     // Deletes one of the 10 added docs, leaving 9:
@@ -214,8 +215,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     
@@ -252,8 +253,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
 
@@ -527,7 +528,7 @@
   private void addDocs(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -535,7 +536,7 @@
   private void addDocs2(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "bbb", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "bbb", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -616,7 +617,7 @@
         .setMaxBufferedDocs(5).setMergePolicy(lmp));
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -654,7 +655,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
   
@@ -1004,8 +1005,8 @@
   private void addDocsWithID(IndexWriter writer, int numDocs, int docStart) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + (docStart + i), TextField.TYPE_STORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
+      doc.add(newField("id", "" + (docStart + i), StoredTextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -1096,7 +1097,7 @@
       dirs[i] = new RAMDirectory();
       IndexWriter w = new IndexWriter(dirs[i], new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document d = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       d.add(new Field("c", "v", customType));
       w.addDocument(d);
@@ -1219,8 +1220,8 @@
     Directory d1 = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d1);
     Document doc = new Document();
-    doc.add(newField("f1", "doc1 field1", StringField.TYPE_STORED));
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("f1", "doc1 field1", StoredStringField.TYPE));
+    doc.add(newField("id", "1", StoredStringField.TYPE));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
     w.close();
@@ -1228,8 +1229,8 @@
     Directory d2 = newDirectory();
     w = new RandomIndexWriter(random(), d2);
     doc = new Document();
-    doc.add(newField("f2", "doc2 field2", StringField.TYPE_STORED));
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("f2", "doc2 field2", StoredStringField.TYPE));
+    doc.add(newField("id", "2", StoredStringField.TYPE));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java	(working copy)
@@ -78,8 +78,8 @@
       for(int j=0; j<10; j++) {
         Document d = new Document();
         int n = random().nextInt();
-        d.add(newField("id", Integer.toString(nextID++), StringField.TYPE_STORED));
-        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+        d.add(newField("id", Integer.toString(nextID++), StoredStringField.TYPE));
+        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
         writer.addDocument(d);
       }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(working copy)
@@ -40,7 +40,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     Field f = newField("foo", "this is a test test", ft);
     doc.add(f);
@@ -71,7 +71,7 @@
     Document d = new Document();
         
     // f1,f2,f3: docs only
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     
     Field f1 = newField("f1", "This field has docs only", ft);
@@ -83,7 +83,7 @@
     Field f3 = newField("f3", "This field has docs only", ft);
     d.add(f3);
 
-    FieldType ft2 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft2 = new FieldType(TextField.TYPE);
     ft2.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     
     // f4,f5,f6 docs and freqs
@@ -96,7 +96,7 @@
     Field f6 = newField("f6", "This field has docs and freqs", ft2);
     d.add(f6);
     
-    FieldType ft3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft3 = new FieldType(TextField.TYPE);
     ft3.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
     
     // f7,f8,f9 docs/freqs/positions
@@ -197,7 +197,7 @@
     lmp.setUseCompoundFile(false);
     Document d = new Document();
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     Field f1 = newField("f1", "This field has term freqs", ft);
     d.add(f1);
@@ -211,7 +211,7 @@
     
     // now add some documents with positions, and check there is no prox after optimization
     d = new Document();
-    f1 = newField("f1", "This field has positions", TextField.TYPE_UNSTORED);
+    f1 = newField("f1", "This field has positions", TextField.TYPE);
     d.add(f1);
     
     for(int i=0;i<30;i++)
Index: lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(working copy)
@@ -728,15 +728,15 @@
 
   private void addDocWithID(IndexWriter writer, int id) throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", "" + id, StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", "" + id, StringField.TYPE));
     writer.addDocument(doc);
   }
   
   private void addDoc(IndexWriter writer) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(working copy)
@@ -29,6 +29,8 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.IndexSearcher;
@@ -58,10 +60,10 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StoredStringField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredTextField.TYPE));
       modifier.addDocument(doc);
     }
     modifier.forceMerge(1);
@@ -383,9 +385,9 @@
   private void updateDoc(IndexWriter modifier, int id, int value)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", String.valueOf(id), StringField.TYPE_STORED));
-    doc.add(newField("value", String.valueOf(value), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StoredStringField.TYPE));
+    doc.add(newField("value", String.valueOf(value), StringField.TYPE));
     modifier.updateDocument(new Term("id", String.valueOf(id)), doc);
   }
 
@@ -393,9 +395,9 @@
   private void addDoc(IndexWriter modifier, int id, int value)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", String.valueOf(id), StringField.TYPE_STORED));
-    doc.add(newField("value", String.valueOf(value), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StoredStringField.TYPE));
+    doc.add(newField("value", String.valueOf(value), StringField.TYPE));
     modifier.addDocument(doc);
   }
 
@@ -432,8 +434,8 @@
     IndexWriter writer = new IndexWriter(startDir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     for (int i = 0; i < 157; i++) {
       Document d = new Document();
-      d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-      d.add(newField("content", "aaa " + i, TextField.TYPE_UNSTORED));
+      d.add(newField("id", Integer.toString(i), StoredStringField.TYPE));
+      d.add(newField("content", "aaa " + i, TextField.TYPE));
       writer.addDocument(d);
     }
     writer.close();
@@ -510,8 +512,8 @@
             for (int i = 0; i < 13; i++) {
               if (updates) {
                 Document d = new Document();
-                d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-                d.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+                d.add(newField("id", Integer.toString(i), StoredStringField.TYPE));
+                d.add(newField("content", "bbb " + i, TextField.TYPE));
                 modifier.updateDocument(new Term("id", Integer.toString(docId)), d);
               } else { // deletes
                 modifier.deleteDocuments(new Term("id", Integer.toString(docId)));
@@ -702,10 +704,10 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StoredStringField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredTextField.TYPE));
       modifier.addDocument(doc);
     }
     // flush (and commit if ac)
@@ -823,10 +825,10 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StoredStringField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredTextField.TYPE));
       try {
         modifier.addDocument(doc);
       } catch (IOException io) {
@@ -869,7 +871,7 @@
     Collections.shuffle(ids, random());
     for(int id : ids) {
       Document doc = new Document();
-      doc.add(newField("id", ""+id, StringField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+id, StringField.TYPE));
       w.addDocument(doc);
     }
     Collections.shuffle(ids, random());
@@ -905,7 +907,7 @@
     };
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, analyzer).setRAMBufferSizeMB(1.0).setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH).setMaxBufferedDeleteTerms(IndexWriterConfig.DISABLE_AUTO_FLUSH));
     Document doc = new Document();
-    doc.add(newField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", TextField.TYPE));
     int num = atLeast(3);
     for (int iter = 0; iter < num; iter++) {
       int count = 0;
@@ -1050,8 +1052,8 @@
         w.deleteDocuments(new Term("id", "0"));
       }
       Document doc = new Document();
-      doc.add(newField("id", ""+id, StringField.TYPE_UNSTORED));
-      doc.add(newField("body", sb.toString(), TextField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+id, StringField.TYPE));
+      doc.add(newField("body", sb.toString(), TextField.TYPE));
       w.updateDocument(new Term("id", ""+id), doc);
       docsInSegment.incrementAndGet();
       // TODO: fix this test
Index: lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java	(working copy)
@@ -29,7 +29,7 @@
 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.StoredTextField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
@@ -49,7 +49,7 @@
 
     final List<Integer> fieldIDs = new ArrayList<Integer>();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
     Field idField = newField("id", "", customType);
 
Index: lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(working copy)
@@ -24,11 +24,10 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.store.CompoundFileDirectory;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.IOContext;
 import org.apache.lucene.util.FailOnNonBulkMergesInfoStream;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
@@ -43,8 +42,8 @@
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
       Document d1 = new Document();
-      d1.add(new Field("f1", "first field", StringField.TYPE_STORED));
-      d1.add(new Field("f2", "second field", StringField.TYPE_STORED));
+      d1.add(new StoredStringField("f1", "first field"));
+      d1.add(new StoredStringField("f2", "second field"));
       writer.addDocument(d1);
 
       if (i == 1) {
@@ -55,7 +54,7 @@
       }
 
       Document d2 = new Document();
-      FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType2 = new FieldType(StoredTextField.TYPE);
       customType2.setStoreTermVectors(true);
       d2.add(new TextField("f2", "second field"));
       d2.add(new Field("f1", "first field", customType2));
@@ -106,20 +105,20 @@
     IndexWriter writer = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
     Document d1 = new Document();
-    d1.add(new Field("f1", "first field", TextField.TYPE_STORED));
-    d1.add(new Field("f2", "second field", TextField.TYPE_STORED));
+    d1.add(new StoredTextField("f1", "first field"));
+    d1.add(new StoredTextField("f2", "second field"));
     writer.addDocument(d1);
 
     writer.close();
     writer = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
     Document d2 = new Document();
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setStoreTermVectors(true);
-    d2.add(new Field("f2", "second field", TextField.TYPE_STORED));
+    d2.add(new StoredTextField("f2", "second field"));
     d2.add(new Field("f1", "first field", customType2));
-    d2.add(new Field("f3", "third field", TextField.TYPE_STORED));
-    d2.add(new Field("f4", "fourth field", TextField.TYPE_STORED));
+    d2.add(new StoredTextField("f3", "third field"));
+    d2.add(new StoredTextField("f4", "fourth field"));
     writer.addDocument(d2);
 
     writer.close();
@@ -156,8 +155,8 @@
             TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(
             NoMergePolicy.NO_COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d1 first field", TextField.TYPE_STORED));
-        d.add(new Field("f2", "d1 second field", TextField.TYPE_STORED));
+        d.add(new StoredTextField("f1", "d1 first field"));
+        d.add(new StoredTextField("f2", "d1 second field"));
         writer.addDocument(d);
         writer.close();
         SegmentInfos sis = new SegmentInfos();
@@ -175,7 +174,7 @@
             random().nextBoolean() ? NoMergePolicy.NO_COMPOUND_FILES
                 : NoMergePolicy.COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
+        d.add(new StoredTextField("f1", "d2 first field"));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3 }));
         writer.addDocument(d);
         writer.close();
@@ -197,8 +196,8 @@
             random().nextBoolean() ? NoMergePolicy.NO_COMPOUND_FILES
                 : NoMergePolicy.COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d3 first field", TextField.TYPE_STORED));
-        d.add(new Field("f2", "d3 second field", TextField.TYPE_STORED));
+        d.add(new StoredTextField("f1", "d3 first field"));
+        d.add(new StoredTextField("f2", "d3 second field"));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3, 4, 5 }));
         writer.addDocument(d);
         writer.close();
@@ -292,69 +291,69 @@
   private Field getField(int number) {
     int mode = number % 16;
     String fieldName = "" + number;
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setTokenized(false);
     
-    FieldType customType3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType3 = new FieldType(TextField.TYPE);
     customType3.setTokenized(false);
     
-    FieldType customType4 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType4 = new FieldType(TextField.TYPE);
     customType4.setTokenized(false);
     customType4.setStoreTermVectors(true);
     customType4.setStoreTermVectorOffsets(true);
     
-    FieldType customType5 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType5 = new FieldType(TextField.TYPE);
     customType5.setStoreTermVectors(true);
     customType5.setStoreTermVectorOffsets(true);
 
-    FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType6 = new FieldType(StoredTextField.TYPE);
     customType6.setTokenized(false);
     customType6.setStoreTermVectors(true);
     customType6.setStoreTermVectorOffsets(true);
 
-    FieldType customType7 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType7 = new FieldType(TextField.TYPE);
     customType7.setTokenized(false);
     customType7.setStoreTermVectors(true);
     customType7.setStoreTermVectorOffsets(true);
 
-    FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType8 = new FieldType(StoredTextField.TYPE);
     customType8.setTokenized(false);
     customType8.setStoreTermVectors(true);
     customType8.setStoreTermVectorPositions(true);
 
-    FieldType customType9 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType9 = new FieldType(TextField.TYPE);
     customType9.setStoreTermVectors(true);
     customType9.setStoreTermVectorPositions(true);
 
-    FieldType customType10 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType10 = new FieldType(StoredTextField.TYPE);
     customType10.setTokenized(false);
     customType10.setStoreTermVectors(true);
     customType10.setStoreTermVectorPositions(true);
 
-    FieldType customType11 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType11 = new FieldType(TextField.TYPE);
     customType11.setTokenized(false);
     customType11.setStoreTermVectors(true);
     customType11.setStoreTermVectorPositions(true);
 
-    FieldType customType12 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType12 = new FieldType(StoredTextField.TYPE);
     customType12.setStoreTermVectors(true);
     customType12.setStoreTermVectorOffsets(true);
     customType12.setStoreTermVectorPositions(true);
 
-    FieldType customType13 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType13 = new FieldType(TextField.TYPE);
     customType13.setStoreTermVectors(true);
     customType13.setStoreTermVectorOffsets(true);
     customType13.setStoreTermVectorPositions(true);
 
-    FieldType customType14 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType14 = new FieldType(StoredTextField.TYPE);
     customType14.setTokenized(false);
     customType14.setStoreTermVectors(true);
     customType14.setStoreTermVectorOffsets(true);
     customType14.setStoreTermVectorPositions(true);
 
-    FieldType customType15 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType15 = new FieldType(TextField.TYPE);
     customType15.setTokenized(false);
     customType15.setStoreTermVectors(true);
     customType15.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(working copy)
@@ -22,7 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DocValues.Source;
 import org.apache.lucene.index.DocValues.Type;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
@@ -31,8 +31,8 @@
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LineFileDocs;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 /**
  * 
@@ -55,7 +55,7 @@
     for (int i = 0; i < num; i++) {
       Document doc = docs.nextDoc();
       float nextFloat = random().nextFloat();
-      Field f = new Field(floatTestField, "" + nextFloat, TextField.TYPE_STORED);
+      Field f = new StoredTextField(floatTestField, "" + nextFloat);
       f.setBoost(nextFloat);
 
       doc.add(f);
@@ -97,8 +97,7 @@
       for (int i = 0; i < num; i++) {
         Document doc = docs.nextDoc();
         float nextFloat = random().nextFloat();
-        Field f = new Field(exceptionTestField, "" + nextFloat,
-            TextField.TYPE_STORED);
+        Field f = new StoredTextField(exceptionTestField, "" + nextFloat);
         f.setBoost(nextFloat);
 
         doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java	(working copy)
@@ -32,7 +32,7 @@
 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.StoredTextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.TermQuery;
@@ -771,7 +771,7 @@
     public void indexDoc() throws IOException {
       Document d = new Document();
 
-      FieldType customType1 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType1 = new FieldType(StoredTextField.TYPE);
       customType1.setTokenized(false);
       customType1.setOmitNorms(true);
       
Index: lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java	(working copy)
@@ -50,7 +50,7 @@
     config.setSimilarity(new TestSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(working copy)
@@ -22,7 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -75,7 +75,7 @@
 
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StoredStringField.TYPE);
     doc.add(idField);
     int extraCount = 0;
 
@@ -134,7 +134,7 @@
         .setMergePolicy(mp));
 
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StoredStringField.TYPE);
     doc.add(idField);
     for(int i=0;i<10;i++) {
       if (VERBOSE) {
@@ -178,7 +178,7 @@
 
       for(int j=0;j<21;j++) {
         Document doc = new Document();
-        doc.add(newField("content", "a b c", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "a b c", TextField.TYPE));
         writer.addDocument(doc);
       }
         
@@ -199,7 +199,7 @@
   public void testNoWaitClose() throws IOException {
     MockDirectoryWrapper directory = newDirectory();
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StoredStringField.TYPE);
     doc.add(idField);
 
     IndexWriter writer = new IndexWriter(
Index: lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(working copy)
@@ -22,7 +22,6 @@
 import java.util.Map.Entry;
 
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.ByteDocValuesField;
 import org.apache.lucene.document.DerefBytesDocValuesField;
 import org.apache.lucene.document.Document;
@@ -34,8 +33,9 @@
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.ShortDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
-import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.SortedSource;
 import org.apache.lucene.index.DocValues.Source;
@@ -46,10 +46,9 @@
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BytesRefHash;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
-import org.junit.Before;
 
 /**
  * 
@@ -125,7 +124,7 @@
     Directory d1 = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d1);
     Document doc = new Document();
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("id", "1", StoredStringField.TYPE));
     doc.add(new PackedLongDocValuesField("dv", 1));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
@@ -134,7 +133,7 @@
     Directory d2 = newDirectory();
     w = new RandomIndexWriter(random(), d2);
     doc = new Document();
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("id", "2", StoredStringField.TYPE));
     doc.add(new PackedLongDocValuesField("dv", 2));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
@@ -704,7 +703,7 @@
         }
       }
       doc.removeFields("id");
-      doc.add(new Field("id", idBase + i, StringField.TYPE_STORED));
+      doc.add(new StoredStringField("id", idBase + i));
       w.addDocument(doc);
 
       if (i % 7 == 0) {
@@ -800,7 +799,7 @@
       int len = 1 + random().nextInt(50);
       for (int i = 0; i < numDocs; i++) {
         Document doc = new Document();
-        doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+        doc.add(newField("id", "" + i, StoredTextField.TYPE));
         String string = fixed ? _TestUtil.randomFixedByteLengthUnicodeString(random(),
             len) : _TestUtil.randomRealisticUnicodeString(random(), 1, len);
         BytesRef br = new BytesRef(string);
@@ -815,7 +814,7 @@
       int numDocsNoValue = atLeast(10);
       for (int i = 0; i < numDocsNoValue; i++) {
         Document doc = new Document();
-        doc.add(newField("id", "noValue", TextField.TYPE_STORED));
+        doc.add(newField("id", "noValue", StoredTextField.TYPE));
         w.addDocument(doc);
       }
       BytesRef bytesRef = new BytesRef(fixed ? len : 0);
@@ -828,7 +827,7 @@
       for (int i = 0; i < numDocs; i++) {
         Document doc = new Document();
         String id = "" + i + numDocs;
-        doc.add(newField("id", id, TextField.TYPE_STORED));
+        doc.add(newField("id", id, StoredTextField.TYPE));
         String string = fixed ? _TestUtil.randomFixedByteLengthUnicodeString(random(),
             len) : _TestUtil.randomRealisticUnicodeString(random(), 1, len);
         BytesRef br = new BytesRef(string);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
@@ -237,10 +238,10 @@
     Directory d = newDirectory();
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a a\uffffb", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a a\uffffb", TextField.TYPE));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "a", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     assertEquals(1, r.docFreq(new Term("field", "a\uffffb")));
@@ -257,7 +258,7 @@
 
     final int count = utf8Data.length/2;
     for(int i=0;i<count;i++)
-      doc.add(newField("f" + i, utf8Data[2*i], TextField.TYPE_STORED));
+      doc.add(newField("f" + i, utf8Data[2*i], StoredTextField.TYPE));
     w.addDocument(doc);
     w.close();
 
@@ -279,7 +280,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(rnd, dir);
     Document d = new Document();
     // Single segment
-    Field f = newField("f", "", StringField.TYPE_UNSTORED);
+    Field f = newField("f", "", StringField.TYPE);
     d.add(f);
     char[] chars = new char[2];
     final Set<String> allTerms = new HashSet<String>();
Index: lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(working copy)
@@ -21,9 +21,10 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.junit.Test;
@@ -73,7 +74,7 @@
         .setIndexDeletionPolicy(NoDeletionPolicy.INSTANCE));
     for (int i = 0; i < 10; i++) {
       Document doc = new Document();
-      doc.add(newField("c", "a" + i, TextField.TYPE_STORED));
+      doc.add(newField("c", "a" + i, StoredTextField.TYPE));
       writer.addDocument(doc);
       writer.commit();
       assertEquals("wrong number of commits !", i + 1, DirectoryReader.listCommits(dir).size());
Index: lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(working copy)
@@ -32,7 +32,7 @@
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.LongField;
 import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.FieldCache;
@@ -309,7 +309,7 @@
     FieldType onlyStored = new FieldType();
     onlyStored.setStored(true);
     doc.add(new Field("field", "value", onlyStored));
-    doc.add(new Field("field2", "value", StringField.TYPE_STORED));
+    doc.add(new StoredStringField("field2", "value"));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(working copy)
@@ -26,7 +26,6 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
@@ -49,7 +48,7 @@
     config.setSimilarity(new TestSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java	(working copy)
@@ -36,7 +36,7 @@
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
       if (withID) {
-        doc.add(new Field("id", "" + i, StringField.TYPE_UNSTORED));
+        doc.add(new Field("id", "" + i, StringField.TYPE));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java	(working copy)
@@ -42,7 +42,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
 
     // we generate aweful prefixes: good for testing.
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(working copy)
@@ -21,17 +21,17 @@
 import java.io.IOException;
 import java.util.BitSet;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.HashMap;
 
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Test class to illustrate using IndexDeletionPolicy to provide multi-level rollback capability.
@@ -131,7 +131,7 @@
 
     for(int currentRecordId=1;currentRecordId<=100;currentRecordId++) {
       Document doc=new Document();
-      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId,TextField.TYPE_STORED));
+      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId, StoredTextField.TYPE));
       w.addDocument(doc);
 			
       if (currentRecordId%10 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java	(working copy)
@@ -38,9 +38,9 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     
     Document doc = new Document();
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
-    Field field1 = newField("foo", "", TextField.TYPE_UNSTORED);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field id = newField("id", "", StringField.TYPE);
+    Field field1 = newField("foo", "", TextField.TYPE);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(id);
     doc.add(field1);
     doc.add(field2);
Index: lucene/core/src/test/org/apache/lucene/index/TestDocCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(working copy)
@@ -53,7 +53,7 @@
     Document doc = new Document();
     int numFields = _TestUtil.nextInt(random(), 1, 10);
     for (int i = 0; i < numFields; i++) {
-      doc.add(newField("" + _TestUtil.nextInt(random(), 'a', 'z'), "" + _TestUtil.nextInt(random(), 'a', 'z'), StringField.TYPE_UNSTORED));
+      doc.add(newField("" + _TestUtil.nextInt(random(), 'a', 'z'), "" + _TestUtil.nextInt(random(), 'a', 'z'), StringField.TYPE));
     }
     return doc;
   }
Index: lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java	(working copy)
@@ -32,7 +32,6 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Random;
-import org.junit.Ignore;
 
 // NOTE: this test will fail w/ PreFlexRW codec!  (Because
 // this test uses full binary term space, but PreFlex cannot
@@ -178,7 +177,7 @@
       Document doc = new Document();
       final MyTokenStream ts = new MyTokenStream(random(), TERMS_PER_DOC);
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setIndexOptions(IndexOptions.DOCS_ONLY);
       customType.setOmitNorms(true);
       Field field = new Field("field", ts, customType);
Index: lucene/core/src/test/org/apache/lucene/index/TestRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(working copy)
@@ -19,7 +19,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -31,7 +31,7 @@
     RandomIndexWriter rw = new RandomIndexWriter(random(), dir);
     for (int i = 0; i < 5; i++) {
       Document doc = new Document();
-      doc.add(newField("pk", Integer.toString(i), StringField.TYPE_STORED));
+      doc.add(newField("pk", Integer.toString(i), StoredStringField.TYPE));
       rw.addDocument(doc);
     }
     rw.close();
@@ -42,8 +42,8 @@
     for (int i = 0; i < 3; i++) {
       Document doc = new Document();
       String value = Integer.toString(i);
-      doc.add(newField("pk", value, StringField.TYPE_STORED));
-      doc.add(newField("text", "foo", StringField.TYPE_STORED));
+      doc.add(newField("pk", value, StoredStringField.TYPE));
+      doc.add(newField("text", "foo", StoredStringField.TYPE));
       w.updateDocument(new Term("pk", value), doc);
     }
     w.rollback();
Index: lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java	(working copy)
@@ -134,7 +134,7 @@
         DirectoryReader open = null;
         for (int i = 0; i < num; i++) {
           Document doc = new Document();// docs.nextDoc();
-          doc.add(newField("id", "test", StringField.TYPE_UNSTORED));
+          doc.add(newField("id", "test", StringField.TYPE));
           writer.updateDocument(new Term("id", "test"), doc);
           if (random().nextInt(3) == 0) {
             if (open == null) {
Index: lucene/core/src/test/org/apache/lucene/index/TestFlex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFlex.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestFlex.java	(working copy)
@@ -40,10 +40,10 @@
     for(int iter=0;iter<2;iter++) {
       if (iter == 0) {
         Document doc = new Document();
-        doc.add(newField("field1", "this is field1", TextField.TYPE_UNSTORED));
-        doc.add(newField("field2", "this is field2", TextField.TYPE_UNSTORED));
-        doc.add(newField("field3", "aaa", TextField.TYPE_UNSTORED));
-        doc.add(newField("field4", "bbb", TextField.TYPE_UNSTORED));
+        doc.add(newField("field1", "this is field1", TextField.TYPE));
+        doc.add(newField("field2", "this is field2", TextField.TYPE));
+        doc.add(newField("field3", "aaa", TextField.TYPE));
+        doc.add(newField("field4", "bbb", TextField.TYPE));
         for(int i=0;i<DOC_COUNT;i++) {
           w.addDocument(doc);
         }
@@ -67,7 +67,7 @@
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
                                                              new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("f", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "a b c", TextField.TYPE));
     w.addDocument(doc);
     w.forceMerge(1);
     DirectoryReader r = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/index/TestCrash.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(working copy)
@@ -44,8 +44,8 @@
     }
     
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", "0", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", "0", TextField.TYPE));
     for(int i=0;i<157;i++)
       writer.addDocument(doc);
 
Index: lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(working copy)
@@ -28,7 +28,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.TermsEnum.SeekStatus;
 import org.apache.lucene.search.AutomatonQuery;
 import org.apache.lucene.search.CheckHits;
@@ -64,7 +64,7 @@
             new MockAnalyzer(random(), MockTokenizer.KEYWORD, false))
             .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_STORED);
+    Field field = newField("field", "", StoredStringField.TYPE);
     doc.add(field);
     terms = new TreeSet<BytesRef>();
  
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(working copy)
@@ -34,7 +34,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", StringField.TYPE));
     final int incrMin = TEST_NIGHTLY ? 15 : 40;
     for(int numDocs=10;numDocs<500;numDocs += _TestUtil.nextInt(random(), incrMin, 5*incrMin)) {
       LogDocMergePolicy ldmp = new LogDocMergePolicy();
@@ -75,7 +75,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", StringField.TYPE));
 
     LogDocMergePolicy ldmp = new LogDocMergePolicy();
     ldmp.setMinMergeDocs(1);
@@ -179,7 +179,7 @@
               setMergePolicy(newLogMergePolicy(51))
       );
       Document doc = new Document();
-      doc.add(newField("field", "aaa", StringField.TYPE_UNSTORED));
+      doc.add(newField("field", "aaa", StringField.TYPE));
       for(int i=0;i<100;i++)
         writer.addDocument(doc);
       writer.forceMerge(1, false);
Index: lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(working copy)
@@ -29,7 +29,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
@@ -232,7 +232,7 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newField("id", "-"+Integer.toString(id), StoredStringField.TYPE));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -248,7 +248,7 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newField("id", "-"+Integer.toString(id), StoredStringField.TYPE));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -261,7 +261,7 @@
                   } else {
                     // assertU(adoc("id",Integer.toString(id), field, Long.toString(nextVal)));
                     Document d = new Document();
-                    d.add(newField("id", Integer.toString(id), StringField.TYPE_STORED));
+                    d.add(newField("id", Integer.toString(id), StoredStringField.TYPE));
                     d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                     if (VERBOSE) {
                       System.out.println("TEST: " + Thread.currentThread().getName() + ": u id:" + id + " val=" + nextVal);
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(working copy)
@@ -148,13 +148,13 @@
 
     public void update(IndexWriter writer) throws IOException {
       // Add 10 docs:
-      FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(StringField.TYPE);
       customType.setStoreTermVectors(true);
       for(int j=0; j<10; j++) {
         Document d = new Document();
         int n = random().nextInt();
         d.add(newField("id", Integer.toString(nextID++), customType));
-        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
         writer.addDocument(d);
       }
 
@@ -198,7 +198,7 @@
     for(int j=0; j<7; j++) {
       Document d = new Document();
       int n = random().nextInt();
-      d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+      d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
       writer.addDocument(d);
     }
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(working copy)
@@ -22,15 +22,11 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.codecs.FieldInfosReader;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.search.similarities.DefaultSimilarity;
-import org.apache.lucene.store.CompoundFileDirectory;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -196,8 +192,8 @@
   private void addDoc(IndexWriter writer, int id) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", Integer.toString(id), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", Integer.toString(id), StringField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(working copy)
@@ -29,6 +29,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -145,7 +146,7 @@
     
     Document newDoc = r1.document(10);
     newDoc.removeField("id");
-    newDoc.add(newField("id", Integer.toString(8000), StringField.TYPE_STORED));
+    newDoc.add(newField("id", Integer.toString(8000), StoredStringField.TYPE));
     writer.updateDocument(new Term("id", id10), newDoc);
     assertFalse(r1.isCurrent());
 
@@ -169,7 +170,7 @@
 
     writer = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     assertTrue(r2.isCurrent());
     assertTrue(r3.isCurrent());
@@ -191,14 +192,14 @@
     
     IndexWriter writer = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     
     iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
     writer = new IndexWriter(dir, iwc);
     doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     DirectoryReader nrtReader = writer.getReader();
     assertTrue(nrtReader.isCurrent());
     writer.addDocument(doc);
@@ -877,8 +878,8 @@
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
+    doc.add(newField("field", "a b c", TextField.TYPE));
+    Field id = newField("id", "", StringField.TYPE);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -901,8 +902,8 @@
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
+    doc.add(newField("field", "a b c", TextField.TYPE));
+    Field id = newField("id", "", StringField.TYPE);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -958,7 +959,7 @@
     );
 
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", StringField.TYPE));
     for(int i=0;i<20;i++) {
       w.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(working copy)
@@ -34,7 +34,8 @@
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -50,8 +51,8 @@
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util._TestUtil;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -556,8 +557,8 @@
   {
     Document doc = new Document();
     doc.add(new TextField("content", "aaa"));
-    doc.add(new Field("id", Integer.toString(id), StringField.TYPE_STORED));
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    doc.add(new StoredStringField("id", Integer.toString(id)));
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -573,7 +574,7 @@
 
   private void addNoProxDoc(IndexWriter writer) throws IOException {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field f = new Field("content3", "aaa", customType);
     doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(working copy)
@@ -23,10 +23,8 @@
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -37,6 +35,8 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
@@ -51,7 +51,6 @@
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.store.AlreadyClosedException;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.store.Lock;
 import org.apache.lucene.store.LockFactory;
 import org.apache.lucene.store.LockObtainFailedException;
@@ -68,7 +67,7 @@
 
 public class TestIndexWriter extends LuceneTestCase {
 
-    private static final FieldType storedTextType = new FieldType(TextField.TYPE_UNSTORED);
+    private static final FieldType storedTextType = new FieldType(TextField.TYPE);
     public void testDocCount() throws IOException {
         Directory dir = newDirectory();
 
@@ -129,7 +128,7 @@
     static void addDoc(IndexWriter writer) throws IOException
     {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa", TextField.TYPE));
         writer.addDocument(doc);
     }
 
@@ -463,7 +462,7 @@
       MockDirectoryWrapper dir = newDirectory();
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(10));
       // Enable norms for only 1 doc, pre flush
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setOmitNorms(true);
       for(int j=0;j<10;j++) {
         Document doc = new Document();
@@ -528,7 +527,7 @@
         b.append(" a a a a a a a a");
       }
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -602,7 +601,7 @@
               setMergePolicy(newLogMergePolicy(10))
       );
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -625,7 +624,7 @@
       Directory dir = newDirectory();
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -658,7 +657,7 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     Document document = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "", customType));
     iw.addDocument(document);
@@ -677,7 +676,7 @@
       ((LogMergePolicy) conf.getMergePolicy()).setMergeFactor(2);
       IndexWriter iw = new IndexWriter(dir, conf);
       Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       document.add(newField("tvtest", "a b c", customType));
       Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
@@ -703,18 +702,18 @@
       Document doc = new Document();
       String contents = "aa bb cc dd ee ff gg hh ii jj kk";
 
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       FieldType type = null;
       if (i == 7) {
         // Add empty docs here
-        doc.add(newField("content3", "", TextField.TYPE_UNSTORED));
+        doc.add(newField("content3", "", TextField.TYPE));
       } else {
         if (i%2 == 0) {
           doc.add(newField("content4", contents, customType));
           type = customType;
         } else
-          type = TextField.TYPE_UNSTORED; 
-        doc.add(newField("content1", contents, TextField.TYPE_UNSTORED));
+          type = TextField.TYPE; 
+        doc.add(newField("content1", contents, TextField.TYPE));
         doc.add(newField("content3", "", customType));
         doc.add(newField("content5", "", type));
       }
@@ -746,7 +745,7 @@
     for(int i=0;i<10000;i++)
       b.append(" a");
     b.append(" x");
-    doc.add(newField("field", b.toString(), TextField.TYPE_UNSTORED));
+    doc.add(newField("field", b.toString(), TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
@@ -764,7 +763,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -774,7 +773,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -792,10 +791,10 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "a", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "b", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "c", StringField.TYPE_UNSTORED));
+    doc.add(newField("", "", StringField.TYPE));
+    doc.add(newField("", "a", StringField.TYPE));
+    doc.add(newField("", "b", StringField.TYPE));
+    doc.add(newField("", "c", StringField.TYPE));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -838,7 +837,7 @@
     Directory dir = newDirectory();
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     doc.add(newField("field", "a field", customType));
     w.addDocument(doc);
     w.commit();
@@ -954,7 +953,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     Field f = newField("field", "", customType);
@@ -991,7 +990,7 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1168,7 +1167,7 @@
     customType.setIndexed(true);
     f.setTokenStream(new MockTokenizer(new StringReader("doc1field1"), MockTokenizer.WHITESPACE, false));
 
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     
     Field f2 = newField("string", "value", customType2);
     f2.setTokenStream(new MockTokenizer(new StringReader("doc1field2"), MockTokenizer.WHITESPACE, false));
@@ -1279,7 +1278,7 @@
       s.append(' ').append(i);
     }
     Document d = new Document();
-    Field f = newField("field", s.toString(), TextField.TYPE_UNSTORED);
+    Field f = newField("field", s.toString(), TextField.TYPE);
     d.add(f);
     w.addDocument(d);
 
@@ -1311,7 +1310,7 @@
               setMergePolicy(mergePolicy)
       );
       Document doc = new Document();
-      doc.add(newField("field", "go", TextField.TYPE_UNSTORED));
+      doc.add(newField("field", "go", TextField.TYPE));
       w.addDocument(doc);
       DirectoryReader r;
       if (iter == 0) {
@@ -1381,7 +1380,7 @@
     // First commit
     Document doc = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1443,7 +1442,7 @@
     }
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1477,7 +1476,7 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1503,11 +1502,11 @@
     String BIG="alskjhlaksjghlaksjfhalksvjepgjioefgjnsdfjgefgjhelkgjhqewlrkhgwlekgrhwelkgjhwelkgrhwlkejg";
     BIG=BIG+BIG+BIG+BIG;
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setOmitNorms(true);
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(StoredTextField.TYPE);
     customType2.setTokenized(false);
-    FieldType customType3 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType3 = new FieldType(StoredTextField.TYPE);
     customType3.setTokenized(false);
     customType3.setOmitNorms(true);
     
@@ -1632,7 +1631,7 @@
     // Make sure we can add a document with exactly the
     // maximum length term, and search on that term:
     doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setTokenized(false);
     Field contentField = new Field("content", "", customType);
     doc.add(contentField);
@@ -1671,7 +1670,7 @@
     iwc.setReaderTermsIndexDivisor(1);
     IndexWriter writer = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -1705,7 +1704,7 @@
     Directory d = new MockDirectoryWrapper(random(), new RAMDirectory());
     IndexWriter w = new IndexWriter(d, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("id", "0", StringField.TYPE_STORED));
+    doc.add(newField("id", "0", StoredStringField.TYPE));
     w.addDocument(doc);
     DirectoryReader r = w.getReader();
     long version = r.getVersion();
@@ -1749,10 +1748,10 @@
     IndexWriter w = new IndexWriter(dir,
                                     new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
-    FieldType docsAndFreqs = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType docsAndFreqs = new FieldType(TextField.TYPE);
     docsAndFreqs.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
 
-    FieldType docsOnly = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType docsOnly = new FieldType(TextField.TYPE);
     docsOnly.setIndexOptions(IndexOptions.DOCS_ONLY);
 
     Document doc = new Document();
Index: lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java	(working copy)
@@ -137,7 +137,7 @@
    */
   private Document getDocument() {
     Document document = new Document();
-    document.add(newField(TEXT_FIELD, "my dog has fleas", TextField.TYPE_UNSTORED));
+    document.add(newField(TEXT_FIELD, "my dog has fleas", TextField.TYPE));
     return document;
   }
     
Index: lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(working copy)
@@ -39,7 +39,7 @@
     IndexWriter w = new IndexWriter(dir, conf);
     for(int i=0;i<80;i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa " + (i%4), TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa " + (i%4), TextField.TYPE));
       w.addDocument(doc);
     }
     assertEquals(80, w.maxDoc());
@@ -85,7 +85,7 @@
       final int numDocs = _TestUtil.nextInt(random(), 20, 100);
       for(int i=0;i<numDocs;i++) {
         Document doc = new Document();
-        doc.add(newField("content", "aaa " + (i%4), TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa " + (i%4), TextField.TYPE));
         w.addDocument(doc);
         int count = w.getSegmentCount();
         maxCount = Math.max(count, maxCount);
@@ -121,8 +121,8 @@
     final int numDocs = atLeast(200);
     for(int i=0;i<numDocs;i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + i, StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "aaa " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + i, StringField.TYPE));
+      doc.add(newField("content", "aaa " + i, TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java	(working copy)
@@ -45,9 +45,9 @@
 
       int numDocs = _TestUtil.nextInt(random(), 1, 100 * RANDOM_MULTIPLIER);
       Document doc = new Document();
-      Field f = newField("field", "", StringField.TYPE_UNSTORED);
+      Field f = newField("field", "", StringField.TYPE);
       doc.add(f);
-      Field id = newField("id", "", StringField.TYPE_UNSTORED);
+      Field id = newField("id", "", StringField.TYPE);
       doc.add(id);
 
       boolean onlyUniqueTerms = random().nextBoolean();
@@ -156,7 +156,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d = new Document();
-    d.add(newField("f", "j", StringField.TYPE_UNSTORED));
+    d.add(newField("f", "j", StringField.TYPE));
     w.addDocument(d);
     w.commit();
     w.addDocument(d);
Index: lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java	(working copy)
@@ -121,7 +121,7 @@
 	  for(int idx=0;idx<NUM_DOCS;idx++) {
 	    final Document doc = new Document();
 	    String s = isS1.get(idx) ? s1 : s2;
-	    final Field f = newField("field", s, TextField.TYPE_UNSTORED);
+	    final Field f = newField("field", s, TextField.TYPE);
 	    final int count = _TestUtil.nextInt(random(), 1, 4);
 	    for(int ct=0;ct<count;ct++) {
 	      doc.add(f);
@@ -307,7 +307,7 @@
       iwc.setMaxBufferedDocs(-1);
       final RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
 
-      FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType ft = new FieldType(TextField.TYPE);
       ft.setIndexOptions(options);
       for(int idx=0;idx<NUM_DOCS;idx++) {
         final Document doc = new Document();
Index: lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(working copy)
@@ -23,11 +23,11 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 @SuppressCodecs("Lucene3x")
 public class TestMixedCodecs extends LuceneTestCase {
@@ -61,7 +61,7 @@
         docsLeftInThisSegment = _TestUtil.nextInt(random(), 10, 100);
       }
       final Document doc = new Document();
-      doc.add(newField("id", String.valueOf(docUpto), StringField.TYPE_STORED));
+      doc.add(newField("id", String.valueOf(docUpto), StoredStringField.TYPE));
       w.addDocument(doc);
       docUpto++;
       docsLeftInThisSegment--;
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(working copy)
@@ -33,6 +33,8 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -131,7 +133,7 @@
         new MockAnalyzer(random)).setOpenMode(
         create ? OpenMode.CREATE : OpenMode.APPEND));
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_UNSTORED));
+    doc.add(newField("body", s, TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
   }
@@ -178,8 +180,8 @@
       FieldType customType3 = new FieldType();
       customType3.setStored(true);
       
-      doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-      doc.add(new Field("text", "test1", TextField.TYPE_STORED));
+      doc.add(new StoredStringField("keyword", "test1"));
+      doc.add(new StoredTextField("text", "test1"));
       doc.add(new Field("unindexed", "test1", customType3));
       doc.add(new TextField("unstored","test1"));
       writer.addDocument(doc);
@@ -204,8 +206,8 @@
       int mergeFactor = ((LogMergePolicy) writer.getConfig().getMergePolicy()).getMergeFactor();
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-        doc.add(new Field("text", "test1", TextField.TYPE_STORED));
+        doc.add(new StoredStringField("keyword", "test1"));
+        doc.add(new StoredTextField("text", "test1"));
         doc.add(new Field("unindexed", "test1", customType3));
         doc.add(new TextField("unstored","test1"));
         writer.addDocument(doc);
@@ -213,30 +215,30 @@
       // new fields are in some different segments (we hope)
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("keyword2", "test1", StringField.TYPE_STORED));
-        doc.add(new Field("text2", "test1", TextField.TYPE_STORED));
+        doc.add(new StoredStringField("keyword2", "test1"));
+        doc.add(new StoredTextField("text2", "test1"));
         doc.add(new Field("unindexed2", "test1", customType3));
         doc.add(new TextField("unstored2","test1"));
         writer.addDocument(doc);
       }
       // new termvector fields
 
-      FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType5 = new FieldType(StoredTextField.TYPE);
       customType5.setStoreTermVectors(true);
-      FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType6 = new FieldType(StoredTextField.TYPE);
       customType6.setStoreTermVectors(true);
       customType6.setStoreTermVectorOffsets(true);
-      FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType7 = new FieldType(StoredTextField.TYPE);
       customType7.setStoreTermVectors(true);
       customType7.setStoreTermVectorPositions(true);
-      FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType8 = new FieldType(StoredTextField.TYPE);
       customType8.setStoreTermVectors(true);
       customType8.setStoreTermVectorOffsets(true);
       customType8.setStoreTermVectorPositions(true);
       
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("tvnot", "tvnot", TextField.TYPE_STORED));
+        doc.add(new StoredTextField("tvnot", "tvnot"));
         doc.add(new Field("termvector", "termvector", customType5));
         doc.add(new Field("tvoffset", "tvoffset", customType6));
         doc.add(new Field("tvposition", "tvposition", customType7));
@@ -320,21 +322,21 @@
   // want to get some more segments here
   // new termvector fields
   int mergeFactor = ((LogMergePolicy) writer.getConfig().getMergePolicy()).getMergeFactor();
-  FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType5 = new FieldType(StoredTextField.TYPE);
   customType5.setStoreTermVectors(true);
-  FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType6 = new FieldType(StoredTextField.TYPE);
   customType6.setStoreTermVectors(true);
   customType6.setStoreTermVectorOffsets(true);
-  FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType7 = new FieldType(StoredTextField.TYPE);
   customType7.setStoreTermVectors(true);
   customType7.setStoreTermVectorPositions(true);
-  FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType8 = new FieldType(StoredTextField.TYPE);
   customType8.setStoreTermVectors(true);
   customType8.setStoreTermVectorOffsets(true);
   customType8.setStoreTermVectorPositions(true);
   for (int i = 0; i < 5 * mergeFactor; i++) {
     Document doc = new Document();
-      doc.add(new Field("tvnot", "one two two three three three", TextField.TYPE_STORED));
+      doc.add(new StoredTextField("tvnot", "one two two three three three"));
       doc.add(new Field("termvector", "one two two three three three", customType5));
       doc.add(new Field("tvoffset", "one two two three three three", customType6));
       doc.add(new Field("tvposition", "one two two three three three", customType7));
@@ -495,8 +497,8 @@
       
       FieldType customType3 = new FieldType();
       customType3.setStored(true);
-      doc.add(newField("keyword", "test1", StringField.TYPE_STORED));
-      doc.add(newField("text", "test1", TextField.TYPE_STORED));
+      doc.add(newField("keyword", "test1", StoredStringField.TYPE));
+      doc.add(newField("text", "test1", StoredTextField.TYPE));
       doc.add(newField("unindexed", "test1", customType3));
       doc.add(new TextField("unstored","test1"));
       writer.addDocument(doc);
@@ -508,8 +510,8 @@
     
     FieldType customType3 = new FieldType();
     customType3.setStored(true);
-    doc.add(newField("keyword2", "test1", StringField.TYPE_STORED));
-    doc.add(newField("text2", "test1", TextField.TYPE_STORED));
+    doc.add(newField("keyword2", "test1", StoredStringField.TYPE));
+    doc.add(newField("text2", "test1", StoredTextField.TYPE));
     doc.add(newField("unindexed2", "test1", customType3));
     doc.add(new TextField("unstored2","test1"));
     writer.addDocument(doc);
@@ -518,19 +520,19 @@
   static void addDocumentWithTermVectorFields(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType5 = new FieldType(StoredTextField.TYPE);
       customType5.setStoreTermVectors(true);
-      FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType6 = new FieldType(StoredTextField.TYPE);
       customType6.setStoreTermVectors(true);
       customType6.setStoreTermVectorOffsets(true);
-      FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType7 = new FieldType(StoredTextField.TYPE);
       customType7.setStoreTermVectors(true);
       customType7.setStoreTermVectorPositions(true);
-      FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType8 = new FieldType(StoredTextField.TYPE);
       customType8.setStoreTermVectors(true);
       customType8.setStoreTermVectorOffsets(true);
       customType8.setStoreTermVectorPositions(true);
-      doc.add(newField("tvnot","tvnot",TextField.TYPE_STORED));
+      doc.add(newField("tvnot","tvnot",StoredTextField.TYPE));
       doc.add(newField("termvector","termvector",customType5));
       doc.add(newField("tvoffset","tvoffset", customType6));
       doc.add(newField("tvposition","tvposition", customType7));
@@ -541,7 +543,7 @@
   
   static void addDoc(IndexWriter writer, String value) throws IOException {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", value, TextField.TYPE));
       writer.addDocument(doc);
   }
 
@@ -707,7 +709,7 @@
 
   static Document createDocument(String id) {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setTokenized(false);
     customType.setOmitNorms(true);
     
@@ -766,7 +768,7 @@
             setMergePolicy(newLogMergePolicy(10))
     );
     Document doc = new Document();
-    doc.add(newField("number", "17", StringField.TYPE_UNSTORED));
+    doc.add(newField("number", "17", StringField.TYPE));
     writer.addDocument(doc);
     writer.commit();
   
@@ -799,8 +801,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.commit();
@@ -828,8 +830,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.close();
@@ -936,7 +938,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d = new Document();
-    d.add(newField("f", "a a b", TextField.TYPE_UNSTORED));
+    d.add(newField("f", "a a b", TextField.TYPE));
     writer.addDocument(d);
     DirectoryReader r = writer.getReader();
     writer.close();
@@ -1073,8 +1075,8 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field1", "foobar", StringField.TYPE_STORED));
-    doc.add(newField("field2", "foobaz", StringField.TYPE_STORED));
+    doc.add(newField("field1", "foobar", StoredStringField.TYPE));
+    doc.add(newField("field2", "foobaz", StoredStringField.TYPE));
     writer.addDocument(doc);
     DirectoryReader r = writer.getReader();
     writer.close();
@@ -1096,8 +1098,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
 
     // open(IndexWriter, boolean)
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.codecs.LiveDocsFormat;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
@@ -488,7 +489,7 @@
 
     Document doc = new Document();
 
-    doc.add(newField("f", "doctor who", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "doctor who", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
@@ -524,7 +525,7 @@
         .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
     dir.setMaxSizeInBytes(Math.max(1, dir.getRecomputedActualSizeInBytes()));
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
     doc.add(newField("field", "aaa bbb ccc ddd eee fff ggg hhh iii jjj", customType));
@@ -557,15 +558,15 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
   
   private void addDocWithIndex(IndexWriter writer, int index) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa " + index, TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + index, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa " + index, TextField.TYPE));
+      doc.add(newField("id", "" + index, TextField.TYPE));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(working copy)
@@ -138,12 +138,12 @@
     );
     TokenStream payloadTS1 = new PayloadTokenStream("p1");
     TokenStream payloadTS2 = new PayloadTokenStream("p2");
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < NUM_DOCS; i++) {
       Document doc = new Document();
       doc.add(newField("id", "doc" + i, customType));
-      doc.add(newField("content", "doc content " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "doc content " + i, TextField.TYPE));
       doc.add(new TextField("p", payloadTS1));
       doc.add(new TextField("p", payloadTS2));
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(working copy)
@@ -30,6 +30,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -57,11 +58,11 @@
     /* private field types */
     /* private field types */
 
-    private static final FieldType custom1 = new FieldType(TextField.TYPE_UNSTORED);
+    private static final FieldType custom1 = new FieldType(TextField.TYPE);
     private static final FieldType custom2 = new FieldType();
     private static final FieldType custom3 = new FieldType();
-    private static final FieldType custom4 = new FieldType(StringField.TYPE_UNSTORED);
-    private static final FieldType custom5 = new FieldType(TextField.TYPE_STORED);
+    private static final FieldType custom4 = new FieldType(StringField.TYPE);
+    private static final FieldType custom5 = new FieldType(StoredTextField.TYPE);
     
     static {
 
@@ -129,13 +130,13 @@
 
       final Document doc = new Document();
 
-      doc.add(newField(r, "content1", "aaa bbb ccc ddd", TextField.TYPE_STORED));
+      doc.add(newField(r, "content1", "aaa bbb ccc ddd", StoredTextField.TYPE));
       doc.add(newField(r, "content6", "aaa bbb ccc ddd", DocCopyIterator.custom1));
       doc.add(newField(r, "content2", "aaa bbb ccc ddd", DocCopyIterator.custom2));
       doc.add(newField(r, "content3", "aaa bbb ccc ddd", DocCopyIterator.custom3));
 
-      doc.add(newField(r, "content4", "aaa bbb ccc ddd", TextField.TYPE_UNSTORED));
-      doc.add(newField(r, "content5", "aaa bbb ccc ddd", StringField.TYPE_UNSTORED));
+      doc.add(newField(r, "content4", "aaa bbb ccc ddd", TextField.TYPE));
+      doc.add(newField(r, "content5", "aaa bbb ccc ddd", StringField.TYPE));
 
       doc.add(newField(r, "content7", "aaa bbb ccc ddd", DocCopyIterator.custom4));
 
@@ -356,7 +357,7 @@
     Directory dir = newDirectory();
     MockIndexWriter2 w = new MockIndexWriter2(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", StoredTextField.TYPE));
     w.addDocument(doc);
     w.doFail = true;
     try {
@@ -374,7 +375,7 @@
     Directory dir = newDirectory();
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", StoredTextField.TYPE));
     w.addDocument(doc);
 
     Analyzer analyzer = new Analyzer(new Analyzer.PerFieldReuseStrategy()) {
@@ -387,7 +388,7 @@
     };
 
     Document crashDoc = new Document();
-    crashDoc.add(newField("crash", "do it on token 4", TextField.TYPE_STORED));
+    crashDoc.add(newField("crash", "do it on token 4", StoredTextField.TYPE));
     try {
       w.addDocument(crashDoc, analyzer);
       fail("did not hit expected exception");
@@ -428,7 +429,7 @@
     MockIndexWriter3 w = new MockIndexWriter3(dir, conf);
     w.doFail = true;
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", StoredTextField.TYPE));
     for(int i=0;i<10;i++)
       try {
         w.addDocument(doc);
@@ -477,7 +478,7 @@
 
     Document doc = new Document();
     String contents = "aa bb cc dd ee ff gg hh ii jj kk";
-    doc.add(newField("content", contents, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", contents, TextField.TYPE));
     try {
       writer.addDocument(doc);
       fail("did not hit expected exception");
@@ -486,12 +487,12 @@
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(newField("content", "aa bb cc dd", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aa bb cc dd", TextField.TYPE));
     writer.addDocument(doc);
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(newField("content", "aa bb cc dd", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aa bb cc dd", TextField.TYPE));
     writer.addDocument(doc);
 
     writer.close();
@@ -564,7 +565,7 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
     String contents = "aa bb cc dd ee ff gg hh ii jj kk";
-    doc.add(newField("content", contents, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", contents, TextField.TYPE));
     boolean hitError = false;
     for(int i=0;i<200;i++) {
       try {
@@ -816,7 +817,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
 
@@ -913,7 +914,7 @@
       IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
           TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      doc.add(newField("field", "a field", TextField.TYPE_STORED));
+      doc.add(newField("field", "a field", StoredTextField.TYPE));
       w.addDocument(doc);
       dir.failOn(failure);
       try {
@@ -1247,7 +1248,7 @@
         int numDocs = 10 + random().nextInt(30);
         for (int i = 0; i < numDocs; i++) {
           Document doc = new Document();
-          Field field = newField(random(), "field", "a field", TextField.TYPE_STORED);
+          Field field = newField(random(), "field", "a field", StoredTextField.TYPE);
           doc.add(field);
           // random TV
           try {
@@ -1263,12 +1264,12 @@
             
         }
         Document document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new StoredTextField("field", "a field"));
         w.addDocument(document);
 
         for (int i = 0; i < numDocs; i++) {
           Document doc = new Document();
-          Field field = newField(random(), "field", "a field", TextField.TYPE_STORED);
+          Field field = newField(random(), "field", "a field", StoredTextField.TYPE);
           doc.add(field);
           // random TV
           try {
@@ -1283,7 +1284,7 @@
           }
         }
         document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new StoredTextField("field", "a field"));
         w.addDocument(document);
         w.close();
         IndexReader reader = DirectoryReader.open(dir);
@@ -1333,7 +1334,7 @@
     final int numDocs1 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs1;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
     
@@ -1341,10 +1342,10 @@
     for(int docCount=0;docCount<7;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
       if (docCount == 4) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newField("crash", "", TextField.TYPE);
         doc.add(f);
         MockTokenizer tokenizer = new MockTokenizer(new StringReader("crash me on the 4th token"), MockTokenizer.WHITESPACE, false);
         tokenizer.setEnableChecks(false); // disable workflow checking as we forcefully close() in exceptional cases.
@@ -1363,7 +1364,7 @@
     final int numDocs2 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs2;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1391,7 +1392,7 @@
     final int numDocs1 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs1;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1401,16 +1402,16 @@
     for(int docCount=0;docCount<numDocs2;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("subid", "subs", StringField.TYPE_UNSTORED));
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("subid", "subs", StringField.TYPE));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
     }
     w.addDocuments(docs);
 
     final int numDocs3 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs3;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1420,10 +1421,10 @@
     for(int docCount=0;docCount<limit;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
       if (docCount == crashAt) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newField("crash", "", TextField.TYPE);
         doc.add(f);
         MockTokenizer tokenizer = new MockTokenizer(new StringReader("crash me on the 4th token"), MockTokenizer.WHITESPACE, false);
         tokenizer.setEnableChecks(false); // disable workflow checking as we forcefully close() in exceptional cases.
@@ -1443,7 +1444,7 @@
     final int numDocs4 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs4;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(working copy)
@@ -46,7 +46,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -105,7 +105,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -140,7 +140,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -179,7 +179,7 @@
     TokenStream stream = analyzer.tokenStream("field", new StringReader("abcd   "));
     stream.reset(); // TODO: weird to reset before wrapping with CachingTokenFilter... correct?
     stream = new CachingTokenFilter(stream);
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -215,7 +215,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true)));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -251,7 +251,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -296,7 +296,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -335,7 +335,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -396,7 +396,7 @@
 
       document = new Document();
       document.add(storedField);
-      FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType2 = new FieldType(StringField.TYPE);
       customType2.setStoreTermVectors(true);
       customType2.setStoreTermVectorPositions(true);
       customType2.setStoreTermVectorOffsets(true);
@@ -451,7 +451,7 @@
 
       document = new Document();
       document.add(storedField);
-      FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType2 = new FieldType(StringField.TYPE);
       customType2.setStoreTermVectors(true);
       customType2.setStoreTermVectorPositions(true);
       customType2.setStoreTermVectorOffsets(true);
@@ -485,7 +485,7 @@
 
     Field storedField = newField("stored", "stored", customType);
     document.add(storedField);
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -521,19 +521,19 @@
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document document = new Document();
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
     document.add(newField("tvtest", "a b c", customType2));
     iw.addDocument(document);
     document = new Document();
-    document.add(newField("tvtest", "x y z", TextField.TYPE_UNSTORED));
+    document.add(newField("tvtest", "x y z", TextField.TYPE));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
 
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType));
     iw.addDocument(document);
@@ -551,21 +551,21 @@
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document document = new Document();
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType));
     iw.addDocument(document);
     iw.commit();
 
     document = new Document();
-    document.add(newField("tvtest", "x y z", TextField.TYPE_UNSTORED));
+    document.add(newField("tvtest", "x y z", TextField.TYPE));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
 
     iw.forceMerge(1);
 
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType2));
     iw.addDocument(document);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(working copy)
@@ -24,7 +24,7 @@
 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.StoredTextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.AlreadyClosedException;
 import org.apache.lucene.store.Directory;
@@ -59,7 +59,7 @@
     public void run() {
 
       final Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(StoredTextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -300,7 +300,7 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random()))
       .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(StoredTextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -477,7 +477,7 @@
      public void run() {
        try {
          Document doc = new Document();
-         Field field = newField("field", "testData", TextField.TYPE_STORED);
+         Field field = newField("field", "testData", StoredTextField.TYPE);
          doc.add(field);
          IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
              TEST_VERSION_CURRENT, new MockAnalyzer(random())));
Index: lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java	(working copy)
@@ -82,8 +82,8 @@
 
       for (int j = 0; j < MAX_DOCS; j++) {
         Document d = new Document();
-        d.add(newField(PRIORITY_FIELD, HIGH_PRIORITY, TextField.TYPE_STORED));
-        d.add(newField(ID_FIELD, Integer.toString(j), TextField.TYPE_STORED));
+        d.add(newField(PRIORITY_FIELD, HIGH_PRIORITY, StoredTextField.TYPE));
+        d.add(newField(ID_FIELD, Integer.toString(j), StoredTextField.TYPE));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java	(working copy)
@@ -1621,7 +1621,7 @@
       RandomIndexWriter w = new RandomIndexWriter(random(), dir,
                                                   newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(IndexWriterConfig.OpenMode.CREATE));
       Document doc = new Document();
-      Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+      Field idField = newField("id", "", StringField.TYPE);
       doc.add(idField);
       
       final int NUM_IDS = atLeast(200);
@@ -1756,7 +1756,7 @@
     RandomIndexWriter w = new RandomIndexWriter(random(), dir,
                                                 newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(IndexWriterConfig.OpenMode.CREATE));
     Document doc = new Document();
-    Field f = newField("field", "", StringField.TYPE_UNSTORED);
+    Field f = newField("field", "", StringField.TYPE);
     doc.add(f);
       
     final int NUM_TERMS = (int) (1000*RANDOM_MULTIPLIER * (1+random().nextDouble()));
Index: lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(working copy)
@@ -57,12 +57,12 @@
     float theFloat = Float.MAX_VALUE;
     for (int i = 0; i < NUM_DOCS; i++){
       Document doc = new Document();
-      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE_UNSTORED));
+      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE));
+      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE));
+      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE));
+      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE));
+      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE));
+      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE));
       if (0 == i % 3) {
         wA.addDocument(doc);
       } else {
Index: lucene/core/src/test/org/apache/lucene/document/TestDocument.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(working copy)
@@ -206,10 +206,10 @@
     Document doc = new Document();
     FieldType stored = new FieldType();
     stored.setStored(true);
-    doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-    doc.add(new Field("keyword", "test2", StringField.TYPE_STORED));
-    doc.add(new Field("text", "test1", TextField.TYPE_STORED));
-    doc.add(new Field("text", "test2", TextField.TYPE_STORED));
+    doc.add(new StoredStringField("keyword", "test1"));
+    doc.add(new StoredStringField("keyword", "test2"));
+    doc.add(new StoredTextField("text", "test1"));
+    doc.add(new StoredTextField("text", "test2"));
     doc.add(new Field("unindexed", "test1", stored));
     doc.add(new Field("unindexed", "test2", stored));
     doc
@@ -250,10 +250,10 @@
   
   public void testFieldSetValue() throws Exception {
     
-    Field field = new Field("id", "id1", StringField.TYPE_STORED);
+    Field field = new StoredStringField("id", "id1");
     Document doc = new Document();
     doc.add(field);
-    doc.add(new Field("keyword", "test", StringField.TYPE_STORED));
+    doc.add(new StoredStringField("keyword", "test"));
     
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
@@ -289,7 +289,7 @@
   // LUCENE-3616
   public void testInvalidFields() {
     try {
-      new Field("foo", new EmptyTokenizer(new StringReader("")), StringField.TYPE_STORED);
+      new Field("foo", new EmptyTokenizer(new StringReader("")), StoredStringField.TYPE);
       fail("did not hit expected exc");
     } catch (IllegalArgumentException iae) {
       // expected
@@ -367,7 +367,7 @@
     iwc.setMergePolicy(newLogMergePolicy());
     IndexWriter iw = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(new Field("field1", "sometext", StringField.TYPE_STORED));
+    doc.add(new StoredStringField("field1", "sometext"));
     doc.add(new TextField("field2", "sometext"));
     doc.add(new StringField("foo", "bar"));
     iw.addDocument(doc); // add an 'ok' document
Index: lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(working copy)
@@ -18,22 +18,22 @@
  */
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockDirectoryWrapper;
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredStringField;
+import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.LogMergePolicy;
+import org.apache.lucene.index.MergePolicy.OneMerge;
 import org.apache.lucene.index.MergePolicy;
-import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.MergeScheduler;
-import org.apache.lucene.index.MergePolicy.OneMerge;
-import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Holds tests cases to verify external APIs are accessible
@@ -91,7 +91,7 @@
     dir.failOn(new FailOnlyOnMerge());
 
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StoredStringField.TYPE);
     doc.add(idField);
     
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
Index: lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java	(working copy)
@@ -69,12 +69,12 @@
     );
     Document doc = new Document();
     // uses default codec:
-    doc.add(newField("field1", "this field uses the standard codec as the test", TextField.TYPE_UNSTORED));
+    doc.add(newField("field1", "this field uses the standard codec as the test", TextField.TYPE));
     // uses pulsing codec:
-    Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE_UNSTORED);
+    Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE);
     doc.add(field2);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
 
     doc.add(idField);
     for(int i=0;i<NUM_DOCS;i++) {
Index: lucene/core/src/test/org/apache/lucene/TestSearch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestSearch.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/TestSearch.java	(working copy)
@@ -86,8 +86,8 @@
       };
       for (int j = 0; j < docs.length; j++) {
         Document d = new Document();
-        d.add(newField("contents", docs[j], TextField.TYPE_STORED));
-        d.add(newField("id", ""+j, StringField.TYPE_UNSTORED));
+        d.add(newField("contents", docs[j], StoredTextField.TYPE));
+        d.add(newField("id", ""+j, StringField.TYPE));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(working copy)
@@ -28,21 +28,21 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.NIOFSDirectory.NIOFSIndexInput;
 import org.apache.lucene.store.SimpleFSDirectory.SimpleFSIndexInput;
+import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.ArrayUtil;
 
 public class TestBufferedIndexInput extends LuceneTestCase {
   
@@ -253,8 +253,8 @@
         );
         for(int i=0;i<37;i++) {
           Document doc = new Document();
-          doc.add(newField("content", "aaa bbb ccc ddd" + i, TextField.TYPE_STORED));
-          doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+          doc.add(newField("content", "aaa bbb ccc ddd" + i, StoredTextField.TYPE));
+          doc.add(newField("id", "" + i, StoredTextField.TYPE));
           writer.addDocument(doc);
         }
 
Index: lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(working copy)
@@ -20,18 +20,18 @@
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 /**
  * JUnit testcase to test RAMDirectory. RAMDirectory itself is used in many testcases,
@@ -57,7 +57,7 @@
     Document doc = null;
     for (int i = 0; i < docsToAdd; i++) {
       doc = new Document();
-      doc.add(newField("content", English.intToEnglish(i).trim(), StringField.TYPE_STORED));
+      doc.add(newField("content", English.intToEnglish(i).trim(), StoredStringField.TYPE));
       writer.addDocument(doc);
     }
     assertEquals(docsToAdd, writer.maxDoc());
@@ -116,7 +116,7 @@
         public void run() {
           for (int j=1; j<docsPerThread; j++) {
             Document doc = new Document();
-            doc.add(newField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), StringField.TYPE_STORED));
+            doc.add(newField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), StoredStringField.TYPE));
             try {
               writer.addDocument(doc);
             } catch (IOException e) {
Index: lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java	(working copy)
@@ -18,13 +18,12 @@
  */
 
 import java.io.File;
-import java.io.IOException;
 import java.util.Random;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.util.BytesRef;
@@ -154,8 +153,8 @@
     MockDirectoryWrapper dir = new MockDirectoryWrapper(random, mmapDir);
     RandomIndexWriter writer = new RandomIndexWriter(random, dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    Field docid = newField("docid", "0", StringField.TYPE_STORED);
-    Field junk = newField("junk", "", StringField.TYPE_STORED);
+    Field docid = newField("docid", "0", StoredStringField.TYPE);
+    Field junk = newField("junk", "", StoredStringField.TYPE);
     doc.add(docid);
     doc.add(junk);
     
Index: lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java	(working copy)
@@ -19,18 +19,17 @@
 
 import java.io.File;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 public class TestWindowsMMap extends LuceneTestCase {
   
@@ -84,7 +83,7 @@
     for(int dx = 0; dx < num; dx ++) {
       String f = randomField();
       Document doc = new Document();
-      doc.add(newField("data", f, TextField.TYPE_STORED));	
+      doc.add(newField("data", f, StoredTextField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java	(working copy)
@@ -421,7 +421,7 @@
 
     private void addDoc(IndexWriter writer) throws IOException {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa", TextField.TYPE));
         writer.addDocument(doc);
     }
 }
Index: lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java	(working copy)
@@ -31,7 +31,6 @@
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.DocsEnum;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.store.Directory;
@@ -51,7 +50,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, 
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     Document doc = new Document();
-    doc.add(new Field("foo", "a b b c c c d e f g g h i i j j k", TextField.TYPE_UNSTORED));
+    doc.add(new Field("foo", "a b b c c c d e f g g h i i j j k", TextField.TYPE));
     iw.addDocument(doc);
     DirectoryReader ir = iw.getReader();
     iw.close();
@@ -90,7 +89,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, 
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     Document doc = new Document();
-    doc.add(new Field("foo", "a b b c c c d e f g g g h i i j j k l l m m m", TextField.TYPE_UNSTORED));
+    doc.add(new Field("foo", "a b b c c c d e f g g g h i i j j k l l m m m", TextField.TYPE));
     // note: the reuse is imperfect, here we would have 4 enums (lost reuse when we get an enum for 'm')
     // this is because we only track the 'last' enum we reused (not all).
     // but this seems 'good enough' for now.
Index: lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java	(working copy)
@@ -25,11 +25,10 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.codecs.pulsing.Pulsing40PostingsFormat;
 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.StoredTextField;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexReader;
@@ -60,7 +59,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     
     Document document = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     
     switch(_TestUtil.nextInt(random(), 0, 2)) {
       case 0: ft.setIndexOptions(IndexOptions.DOCS_ONLY); break;
@@ -111,7 +110,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     
     Document document = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(StoredTextField.TYPE);
     
     switch(_TestUtil.nextInt(random(), 0, 2)) {
       case 0: ft.setIndexOptions(IndexOptions.DOCS_ONLY); break;
Index: lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java	(working copy)
@@ -21,10 +21,9 @@
 import java.util.Random;
 
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.codecs.appending.AppendingCodec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Fields;
@@ -116,7 +115,7 @@
     ((TieredMergePolicy)cfg.getMergePolicy()).setUseCompoundFile(false);
     IndexWriter writer = new IndexWriter(dir, cfg);
     Document doc = new Document();
-    FieldType storedTextType = new FieldType(TextField.TYPE_STORED);
+    FieldType storedTextType = new FieldType(StoredTextField.TYPE);
     storedTextType.setStoreTermVectors(true);
     storedTextType.setStoreTermVectorPositions(true);
     storedTextType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java	(working copy)
@@ -18,7 +18,6 @@
  */
 
 import org.apache.lucene.store.*;
-import org.apache.lucene.codecs.lucene3x.PreFlexRWCodec;
 import org.apache.lucene.document.*;
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.index.*;
@@ -311,7 +310,7 @@
         uniqueTerms.add(term);
         fieldTerms.add(new Term(field, term));
         Document doc = new Document();
-        doc.add(newField(field, term, StringField.TYPE_UNSTORED));
+        doc.add(newField(field, term, StringField.TYPE));
         w.addDocument(doc);
       }
       uniqueTermCount += uniqueTerms.size();
Index: lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java	(working copy)
@@ -194,7 +194,7 @@
     for (int i = 0; i < NUMBER_OF_DOCUMENTS; i++) {
       Document document = new Document();
       for (int f = 0; f < NUMBER_OF_FIELDS; f++) {
-        document.add(newField("field" + f, getText(), StringField.TYPE_UNSTORED));
+        document.add(newField("field" + f, getText(), StringField.TYPE));
       }
       writer.addDocument(document);
     }
Index: lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(working copy)
@@ -29,17 +29,17 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.LogDocMergePolicy;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
@@ -71,7 +71,7 @@
   private void addDocs(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -79,7 +79,7 @@
   private void addDocs2(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "bbb", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "bbb", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -87,8 +87,8 @@
   private void addDocs3(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "ccc", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + i, StringField.TYPE_STORED));
+      doc.add(newField("content", "ccc", TextField.TYPE));
+      doc.add(newField("id", "" + i, StoredStringField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -250,7 +250,7 @@
       for (int j = 0; j < docsPerRound; j++) {
         final Document doc = new Document();
         for (int k = 0; k < num; k++) {
-          FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+          FieldType customType = new FieldType(TextField.TYPE);
           customType.setTokenized(random().nextBoolean());
           customType.setOmitNorms(random().nextBoolean());
           Field field = newField("" + k, _TestUtil
@@ -307,7 +307,7 @@
     iwc.setCodec(codec);
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     // turn on vectors for the checkindex cross-check
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/TestDemo.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestDemo.java	(revision 1347990)
+++ lucene/core/src/test/org/apache/lucene/TestDemo.java	(working copy)
@@ -22,11 +22,11 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -50,7 +50,7 @@
     Document doc = new Document();
     String longTerm = "longtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongterm";
     String text = "This is the text to be indexed. " + longTerm;
-    doc.add(newField("fieldname", text, TextField.TYPE_STORED));
+    doc.add(newField("fieldname", text, StoredTextField.TYPE));
     iwriter.addDocument(doc);
     iwriter.close();
     
Index: lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java
===================================================================
--- lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java	(revision 1347990)
+++ lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java	(working copy)
@@ -33,14 +33,14 @@
 
 import org.apache.lucene.benchmark.byTask.utils.Config;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.DoubleField;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType.NumericType;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.FloatField;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.DoubleField;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.StoredStringField;
 import org.apache.lucene.document.TextField;
 
 /**
@@ -114,7 +114,7 @@
         fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
         fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
         fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
-        fields.put(ID_FIELD, new Field(ID_FIELD, "", StringField.TYPE_STORED));
+        fields.put(ID_FIELD, new StoredStringField(ID_FIELD, ""));
         fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));
 
         numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L));
@@ -315,7 +315,7 @@
       doc.add(bodyField);
       
       if (storeBytes) {
-        Field bytesField = ds.getField(BYTES_FIELD, StringField.TYPE_STORED);
+        Field bytesField = ds.getField(BYTES_FIELD, StoredStringField.TYPE);
         bytesField.setBytesValue(bdy.getBytes("UTF-8"));
         doc.add(bytesField);
       }
@@ -432,7 +432,7 @@
     boolean termVecPositions = config.get("doc.term.vector.positions", false);
     boolean termVecOffsets = config.get("doc.term.vector.offsets", false);
     
-    valType = new FieldType(TextField.TYPE_UNSTORED);
+    valType = new FieldType(TextField.TYPE);
     valType.setStored(stored);
     valType.setTokenized(tokenized);
     valType.setOmitNorms(!norms);
@@ -441,7 +441,7 @@
     valType.setStoreTermVectorOffsets(termVecOffsets);
     valType.freeze();
 
-    bodyValType = new FieldType(TextField.TYPE_UNSTORED);
+    bodyValType = new FieldType(TextField.TYPE);
     bodyValType.setStored(bodyStored);
     bodyValType.setTokenized(bodyTokenized);
     bodyValType.setOmitNorms(!bodyNorms);
Index: solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
===================================================================
--- solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(revision 1347990)
+++ solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(working copy)
@@ -20,13 +20,11 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Properties;
-
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.queryparser.classic.ParseException;
@@ -124,8 +122,8 @@
         new IndexWriterConfig(Version.LUCENE_40, new StandardAnalyzer(Version.LUCENE_40))
     );
     Document doc = new Document();
-    doc.add(new Field("id", "2", TextField.TYPE_STORED));
-    doc.add(new Field("name", "name2", TextField.TYPE_STORED));
+    doc.add(new StoredTextField("id", "2"));
+    doc.add(new StoredTextField("name", "name2"));
     iw.addDocument(doc);
     iw.commit();
     iw.close();
Index: solr/core/src/test/org/apache/solr/search/TestSort.java
===================================================================
--- solr/core/src/test/org/apache/solr/search/TestSort.java	(revision 1347990)
+++ solr/core/src/test/org/apache/solr/search/TestSort.java	(working copy)
@@ -158,8 +158,8 @@
 
   public void testSort() throws Exception {
     Directory dir = new RAMDirectory();
-    Field f = new Field("f", "0", StringField.TYPE_UNSTORED);
-    Field f2 = new Field("f2", "0", StringField.TYPE_UNSTORED);
+    Field f = new Field("f", "0", StringField.TYPE);
+    Field f2 = new Field("f2", "0", StringField.TYPE);
 
     for (int iterCnt = 0; iterCnt<iter; iterCnt++) {
       IndexWriter iw = new IndexWriter(
Index: solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
===================================================================
--- solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java	(revision 1347990)
+++ solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java	(working copy)
@@ -16,11 +16,16 @@
  */
 package org.apache.solr.spelling;
 
+import java.io.File;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Map;
+
 import org.apache.lucene.analysis.Token;
 import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
@@ -35,18 +40,12 @@
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.component.SpellCheckComponent;
+import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.RefCounted;
-import org.apache.solr.search.SolrIndexSearcher;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.Map;
-
 /**
  * @since solr 1.3
  */
@@ -291,7 +290,7 @@
     );
     for (int i = 0; i < ALT_DOCS.length; i++) {
       Document doc = new Document();
-      doc.add(new Field("title", ALT_DOCS[i], TextField.TYPE_STORED));
+      doc.add(new StoredTextField("title", ALT_DOCS[i]));
       iw.addDocument(doc);
     }
     iw.forceMerge(1);
Index: solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
===================================================================
--- solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(revision 1347990)
+++ solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(working copy)
@@ -32,16 +32,14 @@
 import org.apache.lucene.document.LazyDocument;
 import org.apache.lucene.document.LongField;
 import org.apache.lucene.document.StoredField;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.document.StoredTextField;
 import org.apache.lucene.index.*;
-import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.OpenBitSet;
-import org.apache.lucene.util.ReaderUtil;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
@@ -451,7 +449,7 @@
 
     @Override
     public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-      final FieldType ft = new FieldType(TextField.TYPE_STORED);
+      final FieldType ft = new FieldType(StoredTextField.TYPE);
       ft.setStoreTermVectors(fieldInfo.hasVectors());
       ft.setIndexed(fieldInfo.isIndexed());
       ft.setOmitNorms(fieldInfo.omitsNorms());
