Index: lucene/core/src/java/org/apache/lucene/document/FloatField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/FloatField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/FloatField.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.analysis.NumericTokenStream; // javadocs
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.FieldCache; // javadocs
 import org.apache.lucene.search.NumericRangeFilter; // javadocs
@@ -30,14 +31,14 @@
  * for efficient range filtering and sorting. Here's an example usage:
  * 
  * <pre>
- * document.add(new FloatField(name, 6.0F));
+ * document.add(new FloatField(name, 6.0F, Field.Store.NO));
  * </pre>
  * 
  * For optimal performance, re-use the <code>FloatField</code> and
  * {@link Document} instance for more than one document:
  * 
  * <pre>
- *  FloatField field = new FloatField(name, 0.0F);
+ *  FloatField field = new FloatField(name, 0.0F, Field.Store.NO);
  *  Document document = new Document();
  *  document.add(field);
  * 
@@ -59,10 +60,6 @@
  * {@link org.apache.lucene.search.SortField.Type#FLOAT}. <code>FloatField</code> 
  * values can also be loaded directly from {@link FieldCache}.</p>
  *
- * <p>By default, a <code>FloatField</code>'s value is not stored but
- * is indexed for range filtering and sorting.  You can use
- * {@link StoredField} to also store the value.
- *
  * <p>You may add the same field name as an <code>FloatField</code> to
  * the same document more than once.  Range querying and
  * filtering will be the logical OR of all values; so a range query
@@ -118,21 +115,32 @@
 
 public final class FloatField extends Field {
   
-  public static final FieldType TYPE = new FieldType();
+  public static final FieldType TYPE_UNSTORED = new FieldType();
   static {
-    TYPE.setIndexed(true);
-    TYPE.setTokenized(true);
-    TYPE.setOmitNorms(true);
-    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE.setNumericType(FieldType.NumericType.FLOAT);
-    TYPE.freeze();
+    TYPE_UNSTORED.setIndexed(true);
+    TYPE_UNSTORED.setTokenized(true);
+    TYPE_UNSTORED.setOmitNorms(true);
+    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_UNSTORED.setNumericType(FieldType.NumericType.FLOAT);
+    TYPE_UNSTORED.freeze();
   }
 
-  /** Creates an LongField with the provided value
+  public static final FieldType TYPE_STORED = new FieldType();
+  static {
+    TYPE_STORED.setIndexed(true);
+    TYPE_STORED.setTokenized(true);
+    TYPE_STORED.setOmitNorms(true);
+    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_STORED.setNumericType(FieldType.NumericType.FLOAT);
+    TYPE_STORED.setStored(true);
+    TYPE_STORED.freeze();
+  }
+
+  /** Creates a stored or un-stored FloatField with the provided value
    *  and default <code>precisionStep</code> {@link
    *  NumericUtils#PRECISION_STEP_DEFAULT} (4). */
-  public FloatField(String name, float value) {
-    super(name, TYPE);
+  public FloatField(String name, float value, Store stored) {
+    super(name, stored == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
     fieldsData = Float.valueOf(value);
   }
   
Index: lucene/core/src/java/org/apache/lucene/document/DoubleField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/DoubleField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/DoubleField.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.analysis.NumericTokenStream; // javadocs
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.FieldCache; // javadocs
 import org.apache.lucene.search.NumericRangeFilter; // javadocs
@@ -30,14 +31,14 @@
  * for efficient range filtering and sorting. Here's an example usage:
  * 
  * <pre>
- * document.add(new DoubleField(name, 6.0));
+ * document.add(new DoubleField(name, 6.0, Field.Store.NO));
  * </pre>
  * 
  * For optimal performance, re-use the <code>DoubleField</code> and
  * {@link Document} instance for more than one document:
  * 
  * <pre>
- *  DoubleField field = new DoubleField(name, 0.0);
+ *  DoubleField field = new DoubleField(name, 0.0, Field.Store.NO);
  *  Document document = new Document();
  *  document.add(field);
  * 
@@ -59,10 +60,6 @@
  * {@link org.apache.lucene.search.SortField.Type#DOUBLE}. <code>DoubleField</code> 
  * values can also be loaded directly from {@link FieldCache}.</p>
  *
- * <p>By default, a <code>DoubleField</code>'s value is not stored but
- * is indexed for range filtering and sorting.  You can use
- * {@link StoredField} to also store the value.
- *
  * <p>You may add the same field name as an <code>DoubleField</code> to
  * the same document more than once.  Range querying and
  * filtering will be the logical OR of all values; so a range query
@@ -118,21 +115,32 @@
 
 public final class DoubleField extends Field {
   
-  public static final FieldType TYPE = new FieldType();
+  public static final FieldType TYPE_UNSTORED = new FieldType();
   static {
-    TYPE.setIndexed(true);
-    TYPE.setTokenized(true);
-    TYPE.setOmitNorms(true);
-    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE.setNumericType(FieldType.NumericType.DOUBLE);
-    TYPE.freeze();
+    TYPE_UNSTORED.setIndexed(true);
+    TYPE_UNSTORED.setTokenized(true);
+    TYPE_UNSTORED.setOmitNorms(true);
+    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_UNSTORED.setNumericType(FieldType.NumericType.DOUBLE);
+    TYPE_UNSTORED.freeze();
   }
 
-  /** Creates an LongField with the provided value
+  public static final FieldType TYPE_STORED = new FieldType();
+  static {
+    TYPE_STORED.setIndexed(true);
+    TYPE_STORED.setTokenized(true);
+    TYPE_STORED.setOmitNorms(true);
+    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_STORED.setNumericType(FieldType.NumericType.DOUBLE);
+    TYPE_STORED.setStored(true);
+    TYPE_STORED.freeze();
+  }
+
+  /** Creates a stored or un-stored DoubleField with the provided value
    *  and default <code>precisionStep</code> {@link
    *  NumericUtils#PRECISION_STEP_DEFAULT} (4). */
-  public DoubleField(String name, double value) {
-    super(name, TYPE);
+  public DoubleField(String name, double value, Store stored) {
+    super(name, stored == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
     fieldsData = Double.valueOf(value);
   }
   
Index: lucene/core/src/java/org/apache/lucene/document/Field.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/Field.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/Field.java	(working copy)
@@ -496,4 +496,18 @@
 
     throw new IllegalArgumentException("Field must have either TokenStream, String, Reader or Number value");
   }
+
+  /** Specifies whether and how a field should be stored. */
+  public static enum Store {
+
+    /** Store the original field value in the index. This is useful for short texts
+     * like a document's title which should be displayed with the results. The
+     * value is stored in its original form, i.e. no analyzer is used before it is
+     * stored.
+     */
+    YES,
+
+    /** Do not store the field value in the index. */
+    NO
+  }
 }
Index: lucene/core/src/java/org/apache/lucene/document/IntField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/IntField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/IntField.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.analysis.NumericTokenStream; // javadocs
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.FieldCache; // javadocs
 import org.apache.lucene.search.NumericRangeFilter; // javadocs
@@ -30,14 +31,14 @@
  * for efficient range filtering and sorting. Here's an example usage:
  * 
  * <pre>
- * document.add(new IntField(name, 6));
+ * document.add(new IntField(name, 6, Field.Store.NO));
  * </pre>
  * 
  * For optimal performance, re-use the <code>IntField</code> and
  * {@link Document} instance for more than one document:
  * 
  * <pre>
- *  IntField field = new IntField(name, 6);
+ *  IntField field = new IntField(name, 6, Field.Store.NO);
  *  Document document = new Document();
  *  document.add(field);
  * 
@@ -59,10 +60,6 @@
  * {@link org.apache.lucene.search.SortField.Type#INT}. <code>IntField</code> 
  * values can also be loaded directly from {@link FieldCache}.</p>
  *
- * <p>By default, a <code>IntField</code>'s value is not stored but
- * is indexed for range filtering and sorting.  You can use
- * {@link StoredField} to also store the value.
- *
  * <p>You may add the same field name as an <code>IntField</code> to
  * the same document more than once.  Range querying and
  * filtering will be the logical OR of all values; so a range query
@@ -118,21 +115,32 @@
 
 public final class IntField extends Field {
   
-  public static final FieldType TYPE = new FieldType();
+  public static final FieldType TYPE_UNSTORED = new FieldType();
   static {
-    TYPE.setIndexed(true);
-    TYPE.setTokenized(true);
-    TYPE.setOmitNorms(true);
-    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE.setNumericType(FieldType.NumericType.INT);
-    TYPE.freeze();
+    TYPE_UNSTORED.setIndexed(true);
+    TYPE_UNSTORED.setTokenized(true);
+    TYPE_UNSTORED.setOmitNorms(true);
+    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_UNSTORED.setNumericType(FieldType.NumericType.INT);
+    TYPE_UNSTORED.freeze();
   }
 
-  /** Creates an IntField with the provided value
+  public static final FieldType TYPE_STORED = new FieldType();
+  static {
+    TYPE_STORED.setIndexed(true);
+    TYPE_STORED.setTokenized(true);
+    TYPE_STORED.setOmitNorms(true);
+    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_STORED.setNumericType(FieldType.NumericType.INT);
+    TYPE_STORED.setStored(true);
+    TYPE_STORED.freeze();
+  }
+
+  /** Creates a stored or un-stored IntField with the provided value
    *  and default <code>precisionStep</code> {@link
    *  NumericUtils#PRECISION_STEP_DEFAULT} (4). */
-  public IntField(String name, int value) {
-    super(name, TYPE);
+  public IntField(String name, int value, Store stored) {
+    super(name, stored == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
     fieldsData = Integer.valueOf(value);
   }
   
Index: lucene/core/src/java/org/apache/lucene/document/LongField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/LongField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/LongField.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.analysis.NumericTokenStream; // javadocs
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.search.FieldCache; // javadocs
 import org.apache.lucene.search.NumericRangeFilter; // javadocs
@@ -30,14 +31,14 @@
  * for efficient range filtering and sorting. Here's an example usage:
  * 
  * <pre>
- * document.add(new LongField(name, 6L));
+ * document.add(new LongField(name, 6L, Field.Store.NO));
  * </pre>
  * 
  * For optimal performance, re-use the <code>LongField</code> and
  * {@link Document} instance for more than one document:
  * 
  * <pre>
- *  LongField field = new LongField(name, 0L);
+ *  LongField field = new LongField(name, 0L, Field.Store.NO);
  *  Document document = new Document();
  *  document.add(field);
  * 
@@ -69,10 +70,6 @@
  * {@link org.apache.lucene.search.SortField.Type#LONG}. <code>LongField</code> 
  * values can also be loaded directly from {@link FieldCache}.</p>
  *
- * <p>By default, a <code>LongField</code>'s value is not stored but
- * is indexed for range filtering and sorting.  You can use
- * {@link StoredField} to also store the value.
- *
  * <p>You may add the same field name as an <code>LongField</code> to
  * the same document more than once.  Range querying and
  * filtering will be the logical OR of all values; so a range query
@@ -128,21 +125,32 @@
 
 public final class LongField extends Field {
   
-  public static final FieldType TYPE = new FieldType();
+  public static final FieldType TYPE_UNSTORED = new FieldType();
   static {
-    TYPE.setIndexed(true);
-    TYPE.setTokenized(true);
-    TYPE.setOmitNorms(true);
-    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE.setNumericType(FieldType.NumericType.LONG);
-    TYPE.freeze();
+    TYPE_UNSTORED.setIndexed(true);
+    TYPE_UNSTORED.setTokenized(true);
+    TYPE_UNSTORED.setOmitNorms(true);
+    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_UNSTORED.setNumericType(FieldType.NumericType.LONG);
+    TYPE_UNSTORED.freeze();
   }
 
-  /** Creates an LongField with the provided value
+  public static final FieldType TYPE_STORED = new FieldType();
+  static {
+    TYPE_STORED.setIndexed(true);
+    TYPE_STORED.setTokenized(true);
+    TYPE_STORED.setOmitNorms(true);
+    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_STORED.setNumericType(FieldType.NumericType.LONG);
+    TYPE_STORED.setStored(true);
+    TYPE_STORED.freeze();
+  }
+
+  /** Creates a stored or un-stored LongField with the provided value
    *  and default <code>precisionStep</code> {@link
    *  NumericUtils#PRECISION_STEP_DEFAULT} (4). */
-  public LongField(String name, long value) {
-    super(name, TYPE);
+  public LongField(String name, long value, Store stored) {
+    super(name, stored == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
     fieldsData = Long.valueOf(value);
   }
   
Index: lucene/core/src/java/org/apache/lucene/document/StringField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/StringField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/StringField.java	(working copy)
@@ -23,11 +23,7 @@
  *  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. */
 
 public final class StringField extends Field {
 
@@ -46,15 +42,15 @@
     TYPE_UNSTORED.freeze();
 
     TYPE_STORED.setIndexed(true);
-    TYPE_STORED.setStored(true);
     TYPE_STORED.setOmitNorms(true);
     TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE_STORED.setStored(true);
     TYPE_STORED.freeze();
   }
 
-  /** Creates a new un-stored StringField */
-  public StringField(String name, String value) {
-    super(name, value, TYPE_UNSTORED);
+  /** Creates a new StringField. */
+  public StringField(String name, String value, Store stored) {
+    super(name, value, stored == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
   }
 
   @Override
Index: lucene/core/src/java/org/apache/lucene/document/TextField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/TextField.java	(revision 1348347)
+++ lucene/core/src/java/org/apache/lucene/document/TextField.java	(working copy)
@@ -23,11 +23,7 @@
 
 /** 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. */
 
 public final class TextField extends Field {
 
@@ -43,25 +39,25 @@
     TYPE_UNSTORED.freeze();
 
     TYPE_STORED.setIndexed(true);
+    TYPE_STORED.setTokenized(true);
     TYPE_STORED.setStored(true);
-    TYPE_STORED.setTokenized(true);
     TYPE_STORED.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);
+  /** Creates a new TextField with Reader value. */
+  public TextField(String name, Reader reader, Store store) {
+    super(name, reader, store == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
   }
 
-  /** Creates a new un-stored TextField */
-  public TextField(String name, String value) {
-    super(name, value, TextField.TYPE_UNSTORED);
+  /** Creates a new TextField with String value. */
+  public TextField(String name, String value, Store store) {
+    super(name, value, store == Store.YES ? TYPE_STORED : TYPE_UNSTORED);
   }
   
-  /** Creates a new un-stored TextField */
+  /** Creates a new un-stored TextField with TokenStream value. */
   public TextField(String name, TokenStream stream) {
-    super(name, stream, TextField.TYPE_UNSTORED);
+    super(name, stream, TYPE_UNSTORED);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(working copy)
@@ -18,6 +18,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.search.FieldCache;
 import org.apache.lucene.index.AtomicReader;
@@ -57,12 +58,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(newStringField("theLong", String.valueOf(theLong--), Field.Store.NO));
+      doc.add(newStringField("theDouble", String.valueOf(theDouble--), Field.Store.NO));
+      doc.add(newStringField("theByte", String.valueOf(theByte--), Field.Store.NO));
+      doc.add(newStringField("theShort", String.valueOf(theShort--), Field.Store.NO));
+      doc.add(newStringField("theInt", String.valueOf(theInt--), Field.Store.NO));
+      doc.add(newStringField("theFloat", String.valueOf(theFloat--), Field.Store.NO));
       if (0 == i % 3) {
         wA.addDocument(doc);
       } else {
Index: lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java	(revision 1348347)
+++ 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 = newStringField("id", "", Field.Store.NO);
       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 = newStringField("field", "", Field.Store.NO);
     doc.add(f);
       
     final int NUM_TERMS = (int) (1000*RANDOM_MULTIPLIER * (1+random().nextDouble()));
Index: lucene/core/src/test/org/apache/lucene/document/TestDocument.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.analysis.EmptyTokenizer;
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.Fields;
@@ -134,7 +135,7 @@
     FieldType ft = new FieldType();
     ft.setStored(true);
     new Field("name", "value", ft); // okay
-    new StringField("name", "value"); // okay
+    new StringField("name", "value", Field.Store.NO); // okay
     try {
       new Field("name", "value", new FieldType());
       fail();
@@ -206,16 +207,16 @@
     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 StringField("keyword", "test1", Field.Store.YES));
+    doc.add(new StringField("keyword", "test2", Field.Store.YES));
+    doc.add(new TextField("text", "test1", Field.Store.YES));
+    doc.add(new TextField("text", "test2", Field.Store.YES));
     doc.add(new Field("unindexed", "test1", stored));
     doc.add(new Field("unindexed", "test2", stored));
     doc
-        .add(new TextField("unstored", "test1"));
+        .add(new TextField("unstored", "test1", Field.Store.NO));
     doc
-        .add(new TextField("unstored", "test2"));
+        .add(new TextField("unstored", "test2", Field.Store.NO));
     return doc;
   }
   
@@ -250,10 +251,10 @@
   
   public void testFieldSetValue() throws Exception {
     
-    Field field = new Field("id", "id1", StringField.TYPE_STORED);
+    Field field = new StringField("id", "id1", Field.Store.YES);
     Document doc = new Document();
     doc.add(field);
-    doc.add(new Field("keyword", "test", StringField.TYPE_STORED));
+    doc.add(new StringField("keyword", "test", Field.Store.YES));
     
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
@@ -302,14 +303,14 @@
     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 TextField("field2", "sometext"));
-    doc.add(new StringField("foo", "bar"));
+    doc.add(new StringField("field1", "sometext", Field.Store.YES));
+    doc.add(new TextField("field2", "sometext", Field.Store.NO));
+    doc.add(new StringField("foo", "bar", Field.Store.NO));
     iw.addDocument(doc); // add an 'ok' document
     try {
       doc = new Document();
       // try to boost with norms omitted
-      StringField field = new StringField("foo", "baz");
+      StringField field = new StringField("foo", "baz", Field.Store.NO);
       field.setBoost(5.0f);
       doc.add(field);
       iw.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(working copy)
@@ -91,7 +91,7 @@
     dir.failOn(new FailOnlyOnMerge());
 
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newStringField("id", "", Field.Store.YES);
     doc.add(idField);
     
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
Index: lucene/core/src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiFields;
Index: lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java	(revision 1348347)
+++ 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(newTextField("field1", "this field uses the standard codec as the test", Field.Store.NO));
     // uses pulsing codec:
-    Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE_UNSTORED);
+    Field field2 = newTextField("field2", "this field uses the pulsing codec as the test", Field.Store.NO);
     doc.add(field2);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newStringField("id", "", Field.Store.NO);
 
     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 1348347)
+++ 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(newTextField("contents", docs[j], Field.Store.YES));
+        d.add(newStringField("id", ""+j, Field.Store.NO));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(working copy)
@@ -20,6 +20,7 @@
 import java.io.File;
 import java.io.IOException;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.analysis.MockAnalyzer;
@@ -57,7 +58,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(newStringField("content", English.intToEnglish(i).trim(), Field.Store.YES));
       writer.addDocument(doc);
     }
     assertEquals(docsToAdd, writer.maxDoc());
@@ -116,7 +117,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(newStringField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), Field.Store.YES));
             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 1348347)
+++ lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java	(working copy)
@@ -154,8 +154,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 = newStringField("docid", "0", Field.Store.YES);
+    Field junk = newStringField("junk", "", Field.Store.YES);
     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 1348347)
+++ lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.io.File;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -84,7 +85,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(newTextField("data", f, Field.Store.YES));	
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java	(working copy)
@@ -25,6 +25,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.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -421,7 +422,7 @@
 
     private void addDoc(IndexWriter writer) throws IOException {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newTextField("content", "aaa", Field.Store.NO));
         writer.addDocument(doc);
     }
 }
Index: lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(working copy)
@@ -28,6 +28,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.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -253,8 +254,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(newTextField("content", "aaa bbb ccc ddd" + i, Field.Store.YES));
+          doc.add(newTextField("id", "" + i, Field.Store.YES));
           writer.addDocument(doc);
         }
 
Index: lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(working copy)
@@ -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(newTextField("content", "aaa", Field.Store.NO));
       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(newTextField("content", "bbb", Field.Store.NO));
       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(newTextField("content", "ccc", Field.Store.NO));
+      doc.add(newStringField("id", "" + i, Field.Store.YES));
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java	(working copy)
@@ -51,7 +51,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 TextField("foo", "a b b c c c d e f g g h i i j j k", Field.Store.NO));
     iw.addDocument(doc);
     DirectoryReader ir = iw.getReader();
     iw.close();
@@ -90,7 +90,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 TextField("foo", "a b b c c c d e f g g g h i i j j k l l m m m", Field.Store.NO));
     // 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/TestDemo.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestDemo.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/TestDemo.java	(working copy)
@@ -22,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -50,7 +51,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(newTextField("fieldname", text, Field.Store.YES));
     iwriter.addDocument(doc);
     iwriter.close();
     
Index: lucene/core/src/test/org/apache/lucene/search/TestExplanations.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestExplanations.java	(revision 1348347)
+++ 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(newStringField(KEY, ""+i, Field.Store.NO));
+      Field f = newTextField(FIELD, docFields[i], Field.Store.NO);
       f.setBoost(i);
       doc.add(f);
-      doc.add(newField(ALTFIELD, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newTextField(ALTFIELD, docFields[i], Field.Store.NO));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(working copy)
@@ -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 TextField("noTV", English.intToEnglish(i), Field.Store.YES));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -341,7 +341,7 @@
     }
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newTextField("field", English.intToEnglish(i), Field.Store.YES));
       writer.addDocument(doc);
     }
     if (VERBOSE) {
@@ -401,7 +401,7 @@
     ft5.setStoreTermVectorOffsets(true);
     ft5.setStoreTermVectorPositions(true);
     
-    doc.add(newField("field", "one", TextField.TYPE_STORED));
+    doc.add(newTextField("field", "one", Field.Store.YES));
     doc.add(newField("field", "one", ft2));
     doc.add(newField("field", "one", ft3));
     doc.add(newField("field", "one", ft4));
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(working copy)
@@ -21,6 +21,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.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -55,23 +56,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 (newTextField("field", "one two three four five", Field.Store.YES));
+    doc.add (newTextField("sorter", "b", Field.Store.YES));
     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 (newTextField("field", "one two three four", Field.Store.YES));
+    doc.add (newTextField("sorter", "d", Field.Store.YES));
     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 (newTextField("field", "one two three y", Field.Store.YES));
+    doc.add (newTextField("sorter", "a", Field.Store.YES));
     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 (newTextField("field", "one two x", Field.Store.YES));
+    doc.add (newTextField("sorter", "c", Field.Store.YES));
     writer.addDocument (doc);
 
     // tests here require single segment (eg try seed
Index: lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java	(revision 1348347)
+++ 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 = newStringField("field", "", Field.Store.NO);
     doc.add(field);
     
     NumberFormat df = new DecimalFormat("000", new DecimalFormatSymbols(Locale.ENGLISH));
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(working copy)
@@ -19,6 +19,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.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -53,7 +54,7 @@
 
     for (int i = 0; i < 10; i++) {
       Document doc = new Document();
-      doc.add(newField("data", Integer.toString(i), StringField.TYPE_UNSTORED));
+      doc.add(newStringField("data", Integer.toString(i), Field.Store.NO));
       writer.addDocument(doc);
       ((i % 2 == 0) ? swriter1 : swriter2).addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(working copy)
@@ -117,9 +117,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 = newStringField(random, "id", "", Field.Store.YES);
+    Field randField = newStringField(random, "rand", "", Field.Store.YES);
+    Field bodyField = newStringField(random, "body", "", Field.Store.NO);
     doc.add(idField);
     doc.add(randField);
     doc.add(bodyField);
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(working copy)
@@ -52,7 +52,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
 
     Document doc = new Document();
-    Field field = newField(FIELD, "meaninglessnames", StringField.TYPE_UNSTORED);
+    Field field = newStringField(FIELD, "meaninglessnames", Field.Store.NO);
     doc.add(field);
     
     for (int i = 0; i < 5137; ++i) {
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.StringField;
@@ -57,10 +58,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(newStringField("id", String.valueOf(i), Field.Store.YES));//Field.Keyword("id",String.valueOf(i)));
+            doc.add(newStringField("all", "all", Field.Store.YES));//Field.Keyword("all","all"));
             if (null != data[i]) {
-                doc.add(newField("data", data[i], TextField.TYPE_STORED));//Field.Text("data",data[i]));
+                doc.add(newTextField("data", data[i], Field.Store.YES));//Field.Text("data",data[i]));
             }
             w.addDocument(doc);
         }
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java	(revision 1348347)
+++ 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.Field;
 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(newTextField("body", s, Field.Store.YES));
     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(newTextField("body", s, Field.Store.YES));
+    doc.add(newStringField("type", type, Field.Store.NO));
     writer.addDocument(doc);
   }
   
Index: lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -103,9 +104,9 @@
       d1.add(newField("id", "d1", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d1"));
       d1
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
+          .add(newTextField("hed", "elephant", Field.Store.YES));// Field.Text("hed", "elephant"));
       d1
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+          .add(newTextField("dek", "elephant", Field.Store.YES));// Field.Text("dek", "elephant"));
       writer.addDocument(d1);
     }
     
@@ -115,11 +116,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(newTextField("hed", "elephant", Field.Store.YES));// Field.Text("hed", "elephant"));
+      d2.add(newTextField("dek", "albino", Field.Store.YES));// Field.Text("dek",
                                                                                 // "albino"));
       d2
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+          .add(newTextField("dek", "elephant", Field.Store.YES));// Field.Text("dek", "elephant"));
       writer.addDocument(d2);
     }
     
@@ -128,10 +129,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(newTextField("hed", "albino", Field.Store.YES));// Field.Text("hed",
                                                                                 // "albino"));
       d3
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
+          .add(newTextField("hed", "elephant", Field.Store.YES));// Field.Text("hed", "elephant"));
       writer.addDocument(d3);
     }
     
@@ -140,11 +141,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(newTextField("hed", "albino", Field.Store.YES));// 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(newTextField("dek", "albino", Field.Store.YES));// 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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.DoubleField;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FloatDocValuesField;
 import org.apache.lucene.document.FloatField;
 import org.apache.lucene.document.IntDocValuesField;
@@ -62,18 +63,18 @@
     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(new IntField("int", random().nextInt()));
-      document.add(new LongField("long", random().nextLong()));
+      document.add(newTextField("english", English.intToEnglish(i), Field.Store.NO));
+      document.add(newTextField("oddeven", (i % 2 == 0) ? "even" : "odd", Field.Store.NO));
+      document.add(newStringField("byte", "" + ((byte) random().nextInt()), Field.Store.NO));
+      document.add(newStringField("short", "" + ((short) random().nextInt()), Field.Store.NO));
+      document.add(new IntField("int", random().nextInt(), Field.Store.NO));
+      document.add(new LongField("long", random().nextLong(), Field.Store.NO));
 
-      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(new DoubleField("double", random().nextDouble()));
+      document.add(new FloatField("float", random().nextFloat(), Field.Store.NO));
+      document.add(new DoubleField("double", random().nextDouble(), Field.Store.NO));
+      document.add(newStringField("bytes", _TestUtil.randomRealisticUnicodeString(random()), Field.Store.NO));
+      document.add(newStringField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), Field.Store.NO));
+      document.add(new DoubleField("double", random().nextDouble(), Field.Store.NO));
 
       document.add(new IntDocValuesField("intdocvalues", random().nextInt()));
       document.add(new FloatDocValuesField("floatdocvalues", random().nextFloat()));
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(working copy)
@@ -23,6 +23,7 @@
 import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -45,7 +46,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(newStringField(FIELD, values[i], Field.Store.YES));
       writer.addDocument(doc);
     }
     IndexReader ir = writer.getReader();
@@ -129,10 +130,10 @@
     final Directory d = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(new TextField("field", "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33"));
+    doc.add(new TextField("field", "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33", Field.Store.NO));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(new TextField("field", "33"));
+    doc.add(new TextField("field", "33", Field.Store.NO));
     w.addDocument(doc);
     final IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java	(revision 1348347)
+++ 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 = newTextField("title", "some title", Field.Store.NO);
+    Field field = newTextField(FN, "this is document one 2345", Field.Store.NO);
+    Field footerField = newTextField("footer", "a footer", Field.Store.NO);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(working copy)
@@ -26,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -304,7 +305,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(newTextField("test", "test", Field.Store.YES));
     long gen = writer.addDocument(doc);
     manager.maybeRefresh();
     assertFalse(gen < manager.getCurrentSearchingGen());
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.index.IndexReader;
@@ -40,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(newStringField("category", categories[i], Field.Store.YES));
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java	(working copy)
@@ -21,6 +21,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.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
@@ -178,7 +179,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(newStringField("id", "1", Field.Store.YES));
     writer.addDocument(doc);
 
     reader = refreshReader(reader);
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(working copy)
@@ -25,6 +25,7 @@
 import java.util.concurrent.TimeUnit;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -73,7 +74,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(newTextField("field", "a b c d", Field.Store.NO));
     w.addDocument(doc);
 
     IndexReader r = w.getReader();
@@ -137,7 +138,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(newTextField("field", "foo bar", Field.Store.NO));
     iw1.addDocument(doc1);
     IndexReader reader1 = iw1.getReader();
     iw1.close();
@@ -145,7 +146,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(newTextField("field", "foo baz", Field.Store.NO));
     iw2.addDocument(doc2);
     IndexReader reader2 = iw2.getReader();
     iw2.close();
@@ -197,7 +198,7 @@
         contents += " f";
       }
       Document doc = new Document();
-      doc.add(new TextField("field", contents));
+      doc.add(new TextField("field", contents, Field.Store.NO));
       w.addDocument(doc);
     }
     w.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java	(working copy)
@@ -19,6 +19,7 @@
 
 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.FloatField;
 import org.apache.lucene.document.IntField;
@@ -62,7 +63,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 100, 1000))
         .setMergePolicy(newLogMergePolicy()));
     
-    final FieldType storedInt = new FieldType(IntField.TYPE);
+    final FieldType storedInt = new FieldType(IntField.TYPE_UNSTORED);
     storedInt.setStored(true);
     storedInt.freeze();
 
@@ -78,7 +79,7 @@
     final FieldType storedIntNone = new FieldType(storedInt);
     storedIntNone.setNumericPrecisionStep(Integer.MAX_VALUE);
 
-    final FieldType unstoredInt = IntField.TYPE;
+    final FieldType unstoredInt = IntField.TYPE_UNSTORED;
 
     final FieldType unstoredInt8 = new FieldType(unstoredInt);
     unstoredInt8.setNumericPrecisionStep(8);
@@ -303,23 +304,23 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
       newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(new FloatField("float", Float.NEGATIVE_INFINITY));
-    doc.add(new IntField("int", Integer.MIN_VALUE));
+    doc.add(new FloatField("float", Float.NEGATIVE_INFINITY, Field.Store.NO));
+    doc.add(new IntField("int", Integer.MIN_VALUE, Field.Store.NO));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(new FloatField("float", Float.POSITIVE_INFINITY));
-    doc.add(new IntField("int", Integer.MAX_VALUE));
+    doc.add(new FloatField("float", Float.POSITIVE_INFINITY, Field.Store.NO));
+    doc.add(new IntField("int", Integer.MAX_VALUE, Field.Store.NO));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(new FloatField("float", 0.0f));
-    doc.add(new IntField("int", 0));
+    doc.add(new FloatField("float", 0.0f, Field.Store.NO));
+    doc.add(new IntField("int", 0, Field.Store.NO));
     writer.addDocument(doc);
     
     for (float f : TestNumericUtils.FLOAT_NANs) {
       doc = new Document();
-      doc.add(new FloatField("float", f));
+      doc.add(new FloatField("float", f, Field.Store.NO));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(working copy)
@@ -1,5 +1,6 @@
 package org.apache.lucene.search;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.DocIdBitSet;
 import org.apache.lucene.util.LuceneTestCase;
@@ -70,7 +71,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(newStringField("f", terms[j].text(), Field.Store.NO));
           //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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.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.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -324,7 +325,7 @@
   
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newTextField("field", text, Field.Store.YES));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(working copy)
@@ -99,7 +99,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("foo", "bar", Field.Store.NO));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -121,7 +121,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("foo", "bar", Field.Store.NO));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(working copy)
@@ -23,6 +23,7 @@
 
 import org.apache.lucene.codecs.Codec;
 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.IndexReader;
@@ -112,7 +113,7 @@
       FieldType ft = new FieldType(TextField.TYPE_STORED);
       ft.setIndexed(false);
       d.add(newField(FIELD_ID, Integer.toString(i), ft));
-      d.add(newField(FIELD_BODY, docs[i], TextField.TYPE_STORED));
+      d.add(newTextField(FIELD_BODY, docs[i], Field.Store.YES));
       writer.addDocument(d);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.index.IndexReader;
@@ -41,7 +42,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(newStringField("category", categories[i], Field.Store.YES));
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.document.DateTools;
@@ -48,10 +49,8 @@
     
     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));
-    doc.add(newField("body", "Today is a very sunny day in New York City",
-        TextField.TYPE_STORED));
+    doc.add(newStringField("datefield", DateTools.timeToString(now - 1000, DateTools.Resolution.MILLISECOND), Field.Store.YES));
+    doc.add(newTextField("body", "Today is a very sunny day in New York City", Field.Store.YES));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
@@ -113,10 +112,8 @@
     
     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));
-    doc.add(newField("body", "Today is a very sunny day in New York City",
-                     TextField.TYPE_STORED));
+    doc.add(newStringField("datefield", DateTools.timeToString(now + 888888, DateTools.Resolution.MILLISECOND), Field.Store.YES));
+    doc.add(newTextField("body", "Today is a very sunny day in New York City", Field.Store.YES));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -67,7 +68,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(newStringField(FIELD, Integer.toString(i), Field.Store.YES));
         writer.addDocument(doc);
       }
       if (fullMerge) {
Index: lucene/core/src/test/org/apache/lucene/search/TestDateSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(working copy)
@@ -104,12 +104,12 @@
     Document document = new Document();
 
     // Add the text field.
-    Field textField = newField(TEXT_FIELD, text, TextField.TYPE_STORED);
+    Field textField = newTextField(TEXT_FIELD, text, Field.Store.YES);
     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 = newStringField(DATE_TIME_FIELD, dateTimeString, Field.Store.YES);
     document.add(dateTimeField);
 
     return document;
Index: lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 
 import java.io.IOException;
@@ -59,10 +60,10 @@
         .setSimilarity(new SimpleSimilarity()));
     
     Document d1 = new Document();
-    d1.add(newField("field", "a c", TextField.TYPE_STORED));
+    d1.add(newTextField("field", "a c", Field.Store.YES));
 
     Document d2 = new Document();
-    d2.add(newField("field", "a b c", TextField.TYPE_STORED));
+    d2.add(newTextField("field", "a b c", Field.Store.YES));
     
     writer.addDocument(d1);
     writer.addDocument(d2);
Index: lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.TextField;
@@ -47,11 +48,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(newTextField("body", "blueberry pie", Field.Store.YES));
+    doc2.add(newTextField("body", "blueberry strudel", Field.Store.YES));
+    doc3.add(newTextField("body", "blueberry pizza", Field.Store.YES));
+    doc4.add(newTextField("body", "blueberry chewing gum", Field.Store.YES));
+    doc5.add(newTextField("body", "piccadilly circus", Field.Store.YES));
     writer.addDocument(doc1);
     writer.addDocument(doc2);
     writer.addDocument(doc3);
Index: lucene/core/src/test/org/apache/lucene/search/TestSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSort.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestSort.java	(working copy)
@@ -153,17 +153,17 @@
       if (((i%2)==0 && even) || ((i%2)==1 && odd)) {
         Document doc = new Document();
         doc.add (new Field ("tracer", data[i][0], ft1));
-        doc.add (new TextField ("contents", data[i][1]));
+        doc.add (new TextField ("contents", data[i][1], Field.Store.NO));
         if (data[i][2] != null) {
-          doc.add(new StringField ("int", data[i][2]));
+          doc.add(new StringField ("int", data[i][2], Field.Store.NO));
           doc.add(new PackedLongDocValuesField("int", Integer.parseInt(data[i][2])));
         }
         if (data[i][3] != null) {
-          doc.add(new StringField ("float", data[i][3]));
+          doc.add(new StringField ("float", data[i][3], Field.Store.NO));
           doc.add(new FloatDocValuesField("float", Float.parseFloat(data[i][3])));
         }
         if (data[i][4] != null) {
-          doc.add(new StringField ("string", data[i][4]));
+          doc.add(new StringField ("string", data[i][4], Field.Store.NO));
           switch(stringDVType) {
             case BYTES_FIXED_SORTED:
               doc.add(new SortedBytesDocValuesField("string", new BytesRef(data[i][4]), true));
@@ -187,16 +187,16 @@
               throw new IllegalStateException("unknown type " + stringDVType);
           }
         }
-        if (data[i][5] != null) doc.add (new StringField ("custom",   data[i][5]));
-        if (data[i][6] != null) doc.add (new StringField ("i18n",     data[i][6]));
-        if (data[i][7] != null) doc.add (new StringField ("long",     data[i][7]));
+        if (data[i][5] != null) doc.add (new StringField ("custom",   data[i][5], Field.Store.NO));
+        if (data[i][6] != null) doc.add (new StringField ("i18n",     data[i][6], Field.Store.NO));
+        if (data[i][7] != null) doc.add (new StringField ("long",     data[i][7], Field.Store.NO));
         if (data[i][8] != null) {
-          doc.add(new StringField ("double", data[i][8]));
+          doc.add(new StringField ("double", data[i][8], Field.Store.NO));
           doc.add(new DoubleDocValuesField("double", Double.parseDouble(data[i][8])));
         }
-        if (data[i][9] != null) doc.add (new StringField ("short",     data[i][9]));
-        if (data[i][10] != null) doc.add (new StringField ("byte",     data[i][10]));
-        if (data[i][11] != null) doc.add (new StringField ("parser",     data[i][11]));
+        if (data[i][9] != null) doc.add (new StringField ("short",     data[i][9], Field.Store.NO));
+        if (data[i][10] != null) doc.add (new StringField ("byte",     data[i][10], Field.Store.NO));
+        if (data[i][11] != null) doc.add (new StringField ("parser",     data[i][11], Field.Store.NO));
 
         for(IndexableField f : doc.getFields()) {
           if (!f.fieldType().omitNorms()) {
@@ -235,10 +235,10 @@
       String num = getRandomCharString(getRandomNumber(2, 8), 48, 52);
       doc.add (new Field ("tracer", num, onlyStored));
       //doc.add (new Field ("contents", Integer.toString(i), Field.Store.NO, Field.Index.ANALYZED));
-      doc.add(new StringField("string", num));
+      doc.add(new StringField("string", num, Field.Store.NO));
       doc.add(new SortedBytesDocValuesField("string", new BytesRef(num)));
       String num2 = getRandomCharString(getRandomNumber(1, 4), 48, 50);
-      doc.add(new StringField ("string2", num2));
+      doc.add(new StringField ("string2", num2, Field.Store.NO));
       doc.add(new SortedBytesDocValuesField("string2", new BytesRef(num2)));
       doc.add (new Field ("tracer2", num2, onlyStored));
       for(IndexableField f2 : doc.getFields()) {
@@ -250,10 +250,10 @@
       String numFixed = getRandomCharString(fixedLen, 48, 52);
       doc.add (new Field ("fixed_tracer", numFixed, onlyStored));
       //doc.add (new Field ("contents", Integer.toString(i), Field.Store.NO, Field.Index.ANALYZED));
-      doc.add(new StringField("string_fixed", numFixed));
+      doc.add(new StringField("string_fixed", numFixed, Field.Store.NO));
       doc.add(new SortedBytesDocValuesField("string_fixed", new BytesRef(numFixed), true));
       String num2Fixed = getRandomCharString(fixedLen2, 48, 52);
-      doc.add(new StringField ("string2_fixed", num2Fixed));
+      doc.add(new StringField ("string2_fixed", num2Fixed, Field.Store.NO));
       doc.add(new SortedBytesDocValuesField("string2_fixed", new BytesRef(num2Fixed), true));
       doc.add (new Field ("tracer2_fixed", num2Fixed, onlyStored));
 
@@ -1246,12 +1246,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(newStringField("f", "", Field.Store.NO));
+    doc.add(newStringField("t", "1", Field.Store.NO));
     w.addDocument(doc);
     w.commit();
     doc = new Document();
-    doc.add(newField("t", "1", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("t", "1", Field.Store.NO));
     w.addDocument(doc);
 
     IndexReader r = DirectoryReader.open(w, true);
@@ -1272,8 +1272,8 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     for (int i=0; i<5; i++) {
         Document doc = new Document();
-        doc.add (new StringField ("string", "a"+i));
-        doc.add (new StringField ("string", "b"+i));
+        doc.add (new StringField ("string", "a"+i, Field.Store.NO));
+        doc.add (new StringField ("string", "b"+i, Field.Store.NO));
         writer.addDocument (doc);
     }
     writer.forceMerge(1); // enforce one segment to have a higher unique term count in all cases
@@ -1294,8 +1294,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), indexStore);
     for (int i=0; i<5; i++) {
       Document doc = new Document();
-      doc.add (new StringField ("string", "a"+i));
-      doc.add (new StringField ("string", "b"+i));
+      doc.add (new StringField ("string", "a"+i, Field.Store.NO));
+      doc.add (new StringField ("string", "b"+i, Field.Store.NO));
       writer.addDocument (doc);
     }
     IndexReader reader = writer.getReader();
@@ -1378,7 +1378,7 @@
       
       final Document doc = new Document();
       doc.add(new SortedBytesDocValuesField("stringdv", br));
-      doc.add(newField("string", s, StringField.TYPE_UNSTORED));
+      doc.add(newStringField("string", s, Field.Store.NO));
       doc.add(new PackedLongDocValuesField("id", numDocs));
       docValues.add(br);
       writer.addDocument(doc);
@@ -1467,13 +1467,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(newStringField("id", ""+docIDX, Field.Store.YES));
         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(newTextField("body", sb.toString(), Field.Store.NO));
         w.addDocument(doc);
         id++;
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(working copy)
@@ -25,6 +25,7 @@
 import junit.framework.Assert;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -103,7 +104,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("c", "val", Field.Store.NO));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -129,7 +130,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("c", "val", Field.Store.NO));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(working copy)
@@ -25,6 +25,7 @@
 
 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.index.IndexReader;
@@ -57,13 +58,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(newStringField("publicationDate_", random.getLuceneDate(), Field.Store.YES));
       }
       if ((i % 7) == 0) { // some documents to match the query (see below)
-        doc.add(newField("content", "test", TextField.TYPE_STORED));
+        doc.add(newTextField("content", "test", Field.Store.YES));
       }
       // every document has a defined 'mandant' field
-      doc.add(newField("mandant", Integer.toString(i % 3), StringField.TYPE_STORED));
+      doc.add(newStringField("mandant", Integer.toString(i % 3), Field.Store.YES));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestNot.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNot.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestNot.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -37,7 +38,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), store);
 
     Document d1 = new Document();
-    d1.add(newField("field", "a b", TextField.TYPE_STORED));
+    d1.add(newTextField("field", "a b", Field.Store.YES));
 
     writer.addDocument(d1);
     IndexReader 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 1348347)
+++ 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 = newTextField("foo", "", Field.Store.NO);
     doc.add(field);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newTextField("bar", "", Field.Store.NO);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java	(revision 1348347)
+++ 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(newTextField("field", "one two three four five", Field.Store.YES));
+    doc.add(newTextField("repeated", "this is a repeated field - first part", Field.Store.YES));
+    IndexableField repeatedField = newTextField("repeated", "second part of a repeated field", Field.Store.YES);
     doc.add(repeatedField);
-    doc.add(newField("palindrome", "one two three two one", TextField.TYPE_STORED));
+    doc.add(newTextField("palindrome", "one two three two one", Field.Store.YES));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newTextField("nonexist", "phrase exist notexist exist found", Field.Store.YES));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newTextField("nonexist", "phrase exist notexist exist found", Field.Store.YES));
     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(newTextField("field", "the stop words are here", Field.Store.YES));
     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(newTextField("source", "marketing info", Field.Store.YES));
     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(newTextField("contents", "foobar", Field.Store.YES));
+    doc.add(newTextField("source", "marketing info", Field.Store.YES)); 
     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(newTextField("contents", "map entry woo", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "woo map entry", TextField.TYPE_STORED));
+    doc.add(newTextField("contents", "woo map entry", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "map foobarword entry woo", TextField.TYPE_STORED));
+    doc.add(newTextField("contents", "map foobarword entry woo", Field.Store.YES));
     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(newTextField("field", "foo firstname lastname foo", Field.Store.YES));
     writer.addDocument(doc);
     
     Document doc2 = new Document();
-    doc2.add(newField("field", "foo firstname zzz lastname foo", TextField.TYPE_STORED));
+    doc2.add(newTextField("field", "foo firstname zzz lastname foo", Field.Store.YES));
     writer.addDocument(doc2);
     
     Document doc3 = new Document();
-    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", TextField.TYPE_STORED));
+    doc3.add(newTextField("field", "foo firstname zzz yyy lastname foo", Field.Store.YES));
     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 = newTextField("f", "", Field.Store.NO);
     d.add(f);
 
     Random r = random();
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.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.IntField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
@@ -51,8 +52,8 @@
       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(new IntField("trie", value));
+        doc.add(newStringField("asc", format.format(value), Field.Store.NO));
+        doc.add(new IntField("trie", value, Field.Store.NO));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java	(revision 1348347)
+++ 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.Field;
 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(newTextField("some", "value", Field.Store.YES));
       }
-      doc.add(newField("all", "test", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+      doc.add(newTextField("all", "test", Field.Store.NO));
+      doc.add(newTextField("id", "" + i, Field.Store.YES));
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestWildcard.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
@@ -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(newTextField(field, contents[i], Field.Store.YES));
       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(newTextField(field, docs[i], Field.Store.NO));
       iw.addDocument(doc);
     }
     iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(working copy)
@@ -126,9 +126,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 TextField(FIELD, English.intToEnglish(i), Field.Store.YES));
+      doc.add(new TextField(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i), Field.Store.YES));
+      doc.add(new TextField(NO_PAYLOAD_FIELD, English.intToEnglish(i), Field.Store.YES));
       writer.addDocument(doc);
     }
     reader = DirectoryReader.open(writer, true);
Index: lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(working copy)
@@ -21,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
@@ -114,9 +115,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(newTextField("field", English.intToEnglish(i), Field.Store.YES));
       String txt = English.intToEnglish(i) +' '+English.intToEnglish(i+1);
-      doc.add(newField("field2",  txt, TextField.TYPE_STORED));
+      doc.add(newTextField("field2", txt, Field.Store.YES));
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java	(working copy)
@@ -124,11 +124,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 = newTextField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), Field.Store.YES);
       //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(newTextField("field", English.intToEnglish(i), Field.Store.YES));
+      doc.add(newTextField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), Field.Store.YES));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(working copy)
@@ -22,6 +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.index.DirectoryReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -60,7 +61,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(newTextField(field, docFields[i], Field.Store.NO));
       writer.addDocument(doc);
     }
     writer.close();
@@ -92,12 +93,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(newTextField("field2", "xxx", Field.Store.NO));
     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(newTextField("field2", "big bad bug", Field.Store.NO));
     for(int i=0;i<NUM_EXTRA_DOCS/2;i++) {
       w.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
@@ -263,8 +264,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(newStringField("id", "id" + docCount, Field.Store.YES));
+    doc.add(newTextField("content", content, Field.Store.NO));
 
     writer.addDocument(doc);
     docCount++;
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(working copy)
@@ -20,6 +20,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -67,7 +68,7 @@
       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(newTextField("data", data[i], Field.Store.YES));// Field.Text("data",data[i]));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 
 import org.apache.lucene.document.Document;
@@ -41,7 +42,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(newStringField(fieldName, "" + term, Field.Store.YES));
       w.addDocument(doc);
     }
     IndexReader reader = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java	(revision 1348347)
+++ 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 = newStringField("field", "", Field.Store.NO);
     doc.add(field);
 
     int num = atLeast(1000);
Index: lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(working copy)
@@ -22,6 +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.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -116,7 +117,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(newTextField(FIELD_NAME, value, Field.Store.NO));
     iw.addDocument(d);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java	(revision 1348347)
+++ 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 = newTextField("title", "some title", Field.Store.NO);
+    Field field = newTextField(FN, "", Field.Store.NO);
+    Field footerField = newTextField("footer", "a footer", Field.Store.NO);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java	(revision 1348347)
+++ 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(newTextField("f", "a b c d b c d c d d", Field.Store.NO));
       w.addDocument(doc);
 
       doc = new Document();
-      doc.add(newField("f", "a b c d", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("f", "a b c d", Field.Store.NO));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(working copy)
@@ -27,6 +27,7 @@
 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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.MultiFields;
@@ -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(newTextField("field", "bogus", Field.Store.YES));
     writer.addDocument(d);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -207,7 +208,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, new MockPayloadAnalyzer());
     Document doc = new Document();
     doc.add(new TextField("content", new StringReader(
-        "a a b c d e a f g h i j a b k k")));
+        "a a b c d e a f g h i j a b k k"), Field.Store.NO));
     writer.addDocument(doc);
 
     final IndexReader readerFromWriter = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(working copy)
@@ -53,7 +53,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 = newTextField("body", "", Field.Store.NO);
     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/TestQueryWrapperFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(working copy)
@@ -37,7 +37,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field", "value", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "value", Field.Store.NO));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -100,9 +100,9 @@
       } else {
         v = "b";
       }
-      final Field f = newField("field", v, StringField.TYPE_UNSTORED);
+      final Field f = newStringField("field", v, Field.Store.NO);
       doc.add(f);
-      doc.add(newField("id", ""+i, StringField.TYPE_STORED));
+      doc.add(newStringField("id", ""+i, Field.Store.YES));
       w.addDocument(doc);
     }
 
@@ -131,7 +131,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(newStringField("field", English.intToEnglish(i), Field.Store.NO));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java	(revision 1348347)
+++ 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 = newTextField("field", "word", Field.Store.YES);
+    Field f2 = newTextField("field", "word", Field.Store.YES);
     f2.setBoost(2.0f);
 
     Document d1 = new Document();
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(working copy)
@@ -21,6 +21,7 @@
 import java.util.Arrays;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -48,9 +49,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 493432 49344",
-        TextField.TYPE_UNSTORED));
+    doc.add(newTextField(FN, "the quick brown fox jumps over the lazy ??? dog 493432 49344", Field.Store.NO));
     writer.addDocument(doc);
     reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermScorer.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.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -54,7 +55,7 @@
     for (int i = 0; i < values.length; i++) {
       Document doc = new Document();
       doc
-          .add(newField(FIELD, values[i], TextField.TYPE_STORED));
+          .add(newTextField(FIELD, values[i], Field.Store.YES));
       writer.addDocument(doc);
     }
     indexReader = SlowCompositeReaderWrapper.wrap(writer.getReader());
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(working copy)
@@ -29,6 +29,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.*;
@@ -67,24 +68,24 @@
     }
     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(newStringField("theLong", String.valueOf(theLong--), Field.Store.NO));
+      doc.add(newStringField("theDouble", String.valueOf(theDouble--), Field.Store.NO));
+      doc.add(newStringField("theByte", String.valueOf(theByte--), Field.Store.NO));
+      doc.add(newStringField("theShort", String.valueOf(theShort--), Field.Store.NO));
+      doc.add(newStringField("theInt", String.valueOf(theInt--), Field.Store.NO));
+      doc.add(newStringField("theFloat", String.valueOf(theFloat--), Field.Store.NO));
       if (i%2 == 0) {
-        doc.add(newField("sparse", String.valueOf(i), StringField.TYPE_UNSTORED));
+        doc.add(newStringField("sparse", String.valueOf(i), Field.Store.NO));
       }
 
       if (i%2 == 0) {
-        doc.add(new IntField("numInt", i));
+        doc.add(new IntField("numInt", i, Field.Store.NO));
       }
 
       // sometimes skip the field:
       if (random().nextInt(40) != 17) {
         unicodeStrings[i] = generateString(i);
-        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StringField.TYPE_STORED));
+        doc.add(newStringField("theRandomUnicodeString", unicodeStrings[i], Field.Store.YES));
       }
 
       // 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(newStringField("theRandomUnicodeMultiValuedField", newValue, Field.Store.YES));
         }
         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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -90,7 +91,7 @@
       RandomIndexWriter writer = new RandomIndexWriter (random(), directory);
 
       Document doc = new Document();
-      doc.add(newField("field", "term", StringField.TYPE_UNSTORED));
+      doc.add(newStringField("field", "term", Field.Store.NO));
       writer.addDocument(doc);
 
       reader = writer.getReader();
@@ -134,10 +135,10 @@
     Directory d = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(newField("field", "a", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("field", "a", Field.Store.NO));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "b", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("field", "b", Field.Store.NO));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(working copy)
@@ -19,6 +19,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.index.*;
 import org.apache.lucene.search.FieldValueHitQueue.Entry;
@@ -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(newTextField(vals[i], vals[i + 1], Field.Store.YES));
    }
    return doc;
  }
Index: lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java	(working copy)
@@ -20,6 +20,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.DoubleField;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.LongField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -62,7 +63,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 100, 1000))
         .setMergePolicy(newLogMergePolicy()));
 
-    final FieldType storedLong = new FieldType(LongField.TYPE);
+    final FieldType storedLong = new FieldType(LongField.TYPE_UNSTORED);
     storedLong.setStored(true);
     storedLong.freeze();
 
@@ -81,7 +82,7 @@
     final FieldType storedLongNone = new FieldType(storedLong);
     storedLongNone.setNumericPrecisionStep(Integer.MAX_VALUE);
 
-    final FieldType unstoredLong = LongField.TYPE;
+    final FieldType unstoredLong = LongField.TYPE_UNSTORED;
 
     final FieldType unstoredLong8 = new FieldType(unstoredLong);
     unstoredLong8.setNumericPrecisionStep(8);
@@ -328,23 +329,23 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
       newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(new DoubleField("double", Double.NEGATIVE_INFINITY));
-    doc.add(new LongField("long", Long.MIN_VALUE));
+    doc.add(new DoubleField("double", Double.NEGATIVE_INFINITY, Field.Store.NO));
+    doc.add(new LongField("long", Long.MIN_VALUE, Field.Store.NO));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(new DoubleField("double", Double.POSITIVE_INFINITY));
-    doc.add(new LongField("long", Long.MAX_VALUE));
+    doc.add(new DoubleField("double", Double.POSITIVE_INFINITY, Field.Store.NO));
+    doc.add(new LongField("long", Long.MAX_VALUE, Field.Store.NO));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(new DoubleField("double", 0.0));
-    doc.add(new LongField("long", 0L));
+    doc.add(new DoubleField("double", 0.0, Field.Store.NO));
+    doc.add(new LongField("long", 0L, Field.Store.NO));
     writer.addDocument(doc);
     
     for (double d : TestNumericUtils.DOUBLE_NANs) {
       doc = new Document();
-      doc.add(new DoubleField("double", d));
+      doc.add(new DoubleField("double", d, Field.Store.NO));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 
 import org.apache.lucene.analysis.MockAnalyzer;
@@ -92,8 +93,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(newStringField(FIELD_ID, id, Field.Store.YES));
+    document.add(newTextField(FIELD_TEXT, text, Field.Store.YES));
     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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java	(working copy)
@@ -21,6 +21,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.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -57,7 +58,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(newTextField(field, docFields[i], Field.Store.YES));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -446,8 +447,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( newStringField("id", id, Field.Store.YES) );
+    doc.add( newTextField("text", text, Field.Store.YES) );
     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 1348347)
+++ 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 = newTextField("field", "", Field.Store.NO);
     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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java	(working copy)
@@ -28,6 +28,7 @@
 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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -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(newTextField(PayloadHelper.FIELD, "one two three one four three", Field.Store.YES));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -254,7 +255,7 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new TestPayloadAnalyzer()));
 
     Document doc = new Document();
-    doc.add(new TextField("content", new StringReader("a b c d e f g h i j a k")));
+    doc.add(new TextField("content", new StringReader("a b c d e f g h i j a k"), Field.Store.NO));
     writer.addDocument(doc);
 
     IndexReader reader = writer.getReader();
@@ -292,7 +293,7 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new TestPayloadAnalyzer()));
 
     Document doc = new Document();
-    doc.add(new TextField("content", new StringReader("a b a d k f a h i k a k")));
+    doc.add(new TextField("content", new StringReader("a b a d k f a h i k a k"), Field.Store.NO));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     IndexSearcher is = newSearcher(reader);
@@ -328,7 +329,7 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new TestPayloadAnalyzer()));
 
     Document doc = new Document();
-    doc.add(new TextField("content", new StringReader("j k a l f k k p a t a k l k t a")));
+    doc.add(new TextField("content", new StringReader("j k a l f k k p a t a k l k t a"), Field.Store.NO));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     IndexSearcher is = newSearcher(reader);
@@ -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(newTextField(PayloadHelper.FIELD, "xx rr yy mm  pp", Field.Store.YES));
     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(newTextField(PayloadHelper.FIELD, docText, Field.Store.YES));
       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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java	(working copy)
@@ -21,6 +21,7 @@
 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.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -41,10 +42,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(newTextField("field", "the quick brown fox", Field.Store.NO));
     writer.addDocument(doc);
     Document doc2 = new Document();
-    doc2.add(newField("field", "quick brown fox", TextField.TYPE_UNSTORED));
+    doc2.add(newTextField("field", "quick brown fox", Field.Store.NO));
     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 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java	(working copy)
@@ -19,6 +19,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.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -54,7 +55,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(newTextField(FIELD, docFields[i], Field.Store.NO));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(working copy)
@@ -28,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -115,7 +116,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(newTextField("field", English.intToEnglish(i), Field.Store.YES));
       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 1348347)
+++ 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 newTextField(name, value, Field.Store.NO);
   }
 
   protected static IndexSearcher searcher;
Index: lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(working copy)
@@ -50,11 +50,11 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    Field field = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field field = newTextField("foo", "", Field.Store.NO);
     doc.add(field);
     Field dvField = new FloatDocValuesField("foo_boost", 0.0f);
     doc.add(dvField);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newTextField("bar", "", Field.Store.NO);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java	(revision 1348347)
+++ 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 = newStringField(fieldName, "", Field.Store.NO);
     doc.add(field);
     List<String> terms = new ArrayList<String>();
     int num = atLeast(200);
Index: lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(working copy)
@@ -99,7 +99,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 = newTextField("key", text, Field.Store.YES);
     f.setBoost(boost);
     doc.add(f);
     iw.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(working copy)
@@ -20,6 +20,7 @@
 import java.io.IOException;
 
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
@@ -529,8 +530,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(newStringField("id", Integer.toString(d), Field.Store.NO));
+      doc.add(newStringField("body", "body", Field.Store.NO));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(working copy)
@@ -22,6 +22,7 @@
 import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FloatField;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.StringField;
@@ -95,9 +96,9 @@
 
       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(new FloatField("float", random().nextFloat()));
+        doc.add(newStringField("string", _TestUtil.randomRealisticUnicodeString(random()), Field.Store.NO));
+        doc.add(newTextField("text", content[random().nextInt(content.length)], Field.Store.NO));
+        doc.add(new FloatField("float", random().nextFloat(), Field.Store.NO));
         final int intValue;
         if (random().nextInt(100) == 17) {
           intValue = Integer.MIN_VALUE;
@@ -106,7 +107,7 @@
         } else {
           intValue = random().nextInt();
         }
-        doc.add(new IntField("int", intValue));
+        doc.add(new IntField("int", intValue, Field.Store.NO));
         if (VERBOSE) {
           System.out.println("  doc=" + doc);
         }
Index: lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.util.*;
 import org.apache.lucene.store.*;
@@ -42,7 +43,7 @@
 
     // write document
     Document doc = new Document();
-    doc.add(newField("UUID", "1", TextField.TYPE_STORED));
+    doc.add(newTextField("UUID", "1", Field.Store.YES));
     writer.addDocument(doc);
     writer.commit();
   }
Index: lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(working copy)
@@ -89,8 +89,8 @@
       // 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 TextField("contents", English.intToEnglish(i+10*count)));
+        d.add(new StringField("id", Integer.toString(i), Field.Store.YES));
+        d.add(new TextField("contents", English.intToEnglish(i+10*count), Field.Store.NO));
         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(newStringField("id", Integer.toString(i), Field.Store.YES));
+      d.add(newTextField("contents", English.intToEnglish(i), Field.Store.NO));
       if ((i-1)%7 == 0) {
         writer.commit();
       }
Index: lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java	(revision 1348347)
+++ 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(newStringField("id", "test", Field.Store.NO));
           writer.updateDocument(new Term("id", "test"), doc);
           if (random().nextInt(3) == 0) {
             if (open == null) {
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.LiveDocsFormat;
 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.IndexWriterConfig.OpenMode;
@@ -488,7 +489,7 @@
 
     Document doc = new Document();
 
-    doc.add(newField("f", "doctor who", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("f", "doctor who", Field.Store.NO));
     w.addDocument(doc);
     w.commit();
 
@@ -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(newTextField("content", "aaa", Field.Store.NO));
       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(newTextField("content", "aaa " + index, Field.Store.NO));
+      doc.add(newTextField("id", "" + index, Field.Store.NO));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(working copy)
@@ -129,7 +129,7 @@
     static void addDoc(IndexWriter writer) throws IOException
     {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newTextField("content", "aaa", Field.Store.NO));
         writer.addDocument(doc);
     }
 
@@ -707,14 +707,14 @@
       FieldType type = null;
       if (i == 7) {
         // Add empty docs here
-        doc.add(newField("content3", "", TextField.TYPE_UNSTORED));
+        doc.add(newTextField("content3", "", Field.Store.NO));
       } 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));
+        doc.add(newTextField("content1", contents, Field.Store.NO));
         doc.add(newField("content3", "", customType));
         doc.add(newField("content5", "", type));
       }
@@ -746,7 +746,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(newTextField("field", b.toString(), Field.Store.NO));
     writer.addDocument(doc);
     writer.close();
 
@@ -764,7 +764,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(newTextField("", "a b c", Field.Store.NO));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -774,7 +774,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(newTextField("", "a b c", Field.Store.NO));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -792,10 +792,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(newStringField("", "", Field.Store.NO));
+    doc.add(newStringField("", "a", Field.Store.NO));
+    doc.add(newStringField("", "b", Field.Store.NO));
+    doc.add(newStringField("", "c", Field.Store.NO));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -1279,7 +1279,7 @@
       s.append(' ').append(i);
     }
     Document d = new Document();
-    Field f = newField("field", s.toString(), TextField.TYPE_UNSTORED);
+    Field f = newTextField("field", s.toString(), Field.Store.NO);
     d.add(f);
     w.addDocument(d);
 
@@ -1311,7 +1311,7 @@
               setMergePolicy(mergePolicy)
       );
       Document doc = new Document();
-      doc.add(newField("field", "go", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("field", "go", Field.Store.NO));
       w.addDocument(doc);
       DirectoryReader r;
       if (iter == 0) {
@@ -1597,12 +1597,12 @@
 
     // This contents produces a too-long term:
     String contents = "abc xyz x" + bigTerm + " another term";
-    doc.add(new TextField("content", contents));
+    doc.add(new TextField("content", contents, Field.Store.NO));
     w.addDocument(doc);
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(new TextField("content", "abc bbb ccc"));
+    doc.add(new TextField("content", "abc bbb ccc", Field.Store.NO));
     w.addDocument(doc);
 
     IndexReader reader = w.getReader();
@@ -1671,7 +1671,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(newTextField("", "a b c", Field.Store.NO));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -1705,7 +1705,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(newStringField("id", "0", Field.Store.YES));
     w.addDocument(doc);
     DirectoryReader r = w.getReader();
     long version = r.getVersion();
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(working copy)
@@ -129,13 +129,13 @@
 
       final Document doc = new Document();
 
-      doc.add(newField(r, "content1", "aaa bbb ccc ddd", TextField.TYPE_STORED));
+      doc.add(newTextField(r, "content1", "aaa bbb ccc ddd", Field.Store.YES));
       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(newTextField(r, "content4", "aaa bbb ccc ddd", Field.Store.NO));
+      doc.add(newStringField(r, "content5", "aaa bbb ccc ddd", Field.Store.NO));
 
       doc.add(newField(r, "content7", "aaa bbb ccc ddd", DocCopyIterator.custom4));
 
@@ -356,7 +356,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(newTextField("field", "a field", Field.Store.YES));
     w.addDocument(doc);
     w.doFail = true;
     try {
@@ -374,7 +374,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(newTextField("field", "a field", Field.Store.YES));
     w.addDocument(doc);
 
     Analyzer analyzer = new Analyzer(new Analyzer.PerFieldReuseStrategy()) {
@@ -387,7 +387,7 @@
     };
 
     Document crashDoc = new Document();
-    crashDoc.add(newField("crash", "do it on token 4", TextField.TYPE_STORED));
+    crashDoc.add(newTextField("crash", "do it on token 4", Field.Store.YES));
     try {
       w.addDocument(crashDoc, analyzer);
       fail("did not hit expected exception");
@@ -428,7 +428,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(newTextField("field", "a field", Field.Store.YES));
     for(int i=0;i<10;i++)
       try {
         w.addDocument(doc);
@@ -477,7 +477,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(newTextField("content", contents, Field.Store.NO));
     try {
       writer.addDocument(doc);
       fail("did not hit expected exception");
@@ -486,12 +486,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(newTextField("content", "aa bb cc dd", Field.Store.NO));
     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(newTextField("content", "aa bb cc dd", Field.Store.NO));
     writer.addDocument(doc);
 
     writer.close();
@@ -564,7 +564,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(newTextField("content", contents, Field.Store.NO));
     boolean hitError = false;
     for(int i=0;i<200;i++) {
       try {
@@ -816,7 +816,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("content", "aaa", Field.Store.NO));
       writer.addDocument(doc);
   }
 
@@ -913,7 +913,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(newTextField("field", "a field", Field.Store.YES));
       w.addDocument(doc);
       dir.failOn(failure);
       try {
@@ -1247,7 +1247,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 = newTextField(random(), "field", "a field", Field.Store.YES);
           doc.add(field);
           // random TV
           try {
@@ -1263,12 +1263,12 @@
             
         }
         Document document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new TextField("field", "a field", Field.Store.YES));
         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 = newTextField(random(), "field", "a field", Field.Store.YES);
           doc.add(field);
           // random TV
           try {
@@ -1283,7 +1283,7 @@
           }
         }
         document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new TextField("field", "a field", Field.Store.YES));
         w.addDocument(document);
         w.close();
         IndexReader reader = DirectoryReader.open(dir);
@@ -1333,7 +1333,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(newTextField("content", "good content", Field.Store.NO));
       w.addDocument(doc);
     }
     
@@ -1341,10 +1341,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(newStringField("id", docCount+"", Field.Store.NO));
+      doc.add(newTextField("content", "silly content " + docCount, Field.Store.NO));
       if (docCount == 4) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newTextField("crash", "", Field.Store.NO);
         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 +1363,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(newTextField("content", "good content", Field.Store.NO));
       w.addDocument(doc);
     }
 
@@ -1391,7 +1391,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(newTextField("content", "good content", Field.Store.NO));
       w.addDocument(doc);
     }
 
@@ -1401,16 +1401,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(newStringField("subid", "subs", Field.Store.NO));
+      doc.add(newStringField("id", docCount+"", Field.Store.NO));
+      doc.add(newTextField("content", "silly content " + docCount, Field.Store.NO));
     }
     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(newTextField("content", "good content", Field.Store.NO));
       w.addDocument(doc);
     }
 
@@ -1420,10 +1420,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(newStringField("id", docCount+"", Field.Store.NO));
+      doc.add(newTextField("content", "silly content " + docCount, Field.Store.NO));
       if (docCount == crashAt) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newTextField("crash", "", Field.Store.NO);
         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 +1443,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(newTextField("content", "good content", Field.Store.NO));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(working copy)
@@ -179,8 +179,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(newStringField("id", "" + (i % 10), Field.Store.NO));
+      doc.add(newTextField("content", "bbb " + i, Field.Store.NO));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     // Deletes one of the 10 added docs, leaving 9:
@@ -214,8 +214,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(newStringField("id", "" + (i % 10), Field.Store.NO));
+      doc.add(newTextField("content", "bbb " + i, Field.Store.NO));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     
@@ -252,8 +252,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(newStringField("id", "" + (i % 10), Field.Store.NO));
+      doc.add(newTextField("content", "bbb " + i, Field.Store.NO));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
 
@@ -527,7 +527,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(newTextField("content", "aaa", Field.Store.NO));
       writer.addDocument(doc);
     }
   }
@@ -535,7 +535,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(newTextField("content", "bbb", Field.Store.NO));
       writer.addDocument(doc);
     }
   }
@@ -654,7 +654,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("content", "aaa", Field.Store.NO));
       writer.addDocument(doc);
   }
   
@@ -974,7 +974,7 @@
       IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
       IndexWriter writer = new IndexWriter(dirs[i], conf);
       Document doc = new Document();
-      doc.add(new StringField("id", "myid"));
+      doc.add(new StringField("id", "myid", Field.Store.NO));
       writer.addDocument(doc);
       writer.close();
     }
@@ -1004,8 +1004,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(newTextField("content", "aaa", Field.Store.NO));
+      doc.add(newTextField("id", "" + (docStart + i), Field.Store.YES));
       writer.addDocument(doc);
     }
   }
@@ -1219,8 +1219,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(newStringField("f1", "doc1 field1", Field.Store.YES));
+    doc.add(newStringField("id", "1", Field.Store.YES));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
     w.close();
@@ -1228,8 +1228,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(newStringField("f2", "doc2 field2", Field.Store.YES));
+    doc.add(newStringField("id", "2", Field.Store.YES));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java	(revision 1348347)
+++ 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 = newStringField("field", "", Field.Store.NO);
       doc.add(f);
-      Field id = newField("id", "", StringField.TYPE_UNSTORED);
+      Field id = newStringField("id", "", Field.Store.NO);
       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(newStringField("f", "j", Field.Store.NO));
     w.addDocument(d);
     w.commit();
     w.addDocument(d);
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(working copy)
@@ -28,6 +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.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.PayloadProcessorProvider.ReaderPayloadProcessor;
@@ -143,7 +144,7 @@
     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(newTextField("content", "doc content " + i, Field.Store.NO));
       doc.add(new TextField("p", payloadTS1));
       doc.add(new TextField("p", payloadTS2));
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(working copy)
@@ -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 = newTextField("f1", "This field has positions", Field.Store.NO);
     d.add(f1);
     
     for(int i=0;i<30;i++)
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(working copy)
@@ -39,7 +39,7 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newTextField("f1", "This field has norms", Field.Store.NO);
     d.add(f1);
        
     // this field will NOT have norms
@@ -57,7 +57,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(newTextField("f2", "This field has NO norms in all docs", Field.Store.NO));
         
     writer.addDocument(d);
 
@@ -89,7 +89,7 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newTextField("f1", "This field has norms", Field.Store.NO);
     d.add(f1);
        
     // this field will NOT have norms
@@ -109,7 +109,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(newTextField("f2", "This field has NO norms in all docs", Field.Store.NO));
         
     for (int i = 0; i < 30; i++) {
       writer.addDocument(d);
@@ -144,7 +144,7 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newTextField("f1", "This field has norms", Field.Store.NO);
     d.add(f1);
        
     // this field will NOT have norms
Index: lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 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.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -59,7 +60,7 @@
         docsLeftInThisSegment = _TestUtil.nextInt(random(), 10, 100);
       }
       final Document doc = new Document();
-      doc.add(newField("id", String.valueOf(docUpto), StringField.TYPE_STORED));
+      doc.add(newStringField("id", String.valueOf(docUpto), Field.Store.YES));
       w.addDocument(doc);
       docUpto++;
       docsLeftInThisSegment--;
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(working copy)
@@ -145,7 +145,7 @@
     
     Document newDoc = r1.document(10);
     newDoc.removeField("id");
-    newDoc.add(newField("id", Integer.toString(8000), StringField.TYPE_STORED));
+    newDoc.add(newStringField("id", Integer.toString(8000), Field.Store.YES));
     writer.updateDocument(new Term("id", id10), newDoc);
     assertFalse(r1.isCurrent());
 
@@ -169,7 +169,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(newTextField("field", "a b c", Field.Store.NO));
     writer.addDocument(doc);
     assertTrue(r2.isCurrent());
     assertTrue(r3.isCurrent());
@@ -191,14 +191,14 @@
     
     IndexWriter writer = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "a b c", Field.Store.NO));
     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(newTextField("field", "a b c", Field.Store.NO));
     DirectoryReader nrtReader = writer.getReader();
     assertTrue(nrtReader.isCurrent());
     writer.addDocument(doc);
@@ -877,8 +877,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(newTextField("field", "a b c", Field.Store.NO));
+    Field id = newStringField("id", "", Field.Store.NO);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -901,8 +901,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(newTextField("field", "a b c", Field.Store.NO));
+    Field id = newStringField("id", "", Field.Store.NO);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -958,7 +958,7 @@
     );
 
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("foo", "bar", Field.Store.NO));
     for(int i=0;i<20;i++) {
       w.addDocument(doc);
     }
@@ -982,7 +982,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, conf);
     Document doc = new Document();
-    doc.add(new TextField("f", "val"));
+    doc.add(new TextField("f", "val", Field.Store.NO));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true).getSequentialSubReaders()[0];
     try {
Index: lucene/core/src/test/org/apache/lucene/index/TestFlex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFlex.java	(revision 1348347)
+++ 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(newTextField("field1", "this is field1", Field.Store.NO));
+        doc.add(newTextField("field2", "this is field2", Field.Store.NO));
+        doc.add(newTextField("field3", "aaa", Field.Store.NO));
+        doc.add(newTextField("field4", "bbb", Field.Store.NO));
         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(newTextField("f", "a b c", Field.Store.NO));
     w.addDocument(doc);
     w.forceMerge(1);
     DirectoryReader r = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(working copy)
@@ -487,13 +487,13 @@
     customType2.setOmitNorms(true);
     FieldType customType3 = new FieldType();
     customType3.setStored(true);
-    doc.add(new Field("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(new TextField("field1", sb.toString(), Field.Store.YES));
     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 TextField("field" + (i+1), sb.toString(), Field.Store.YES));
     }
     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(newStringField("id", ""+i, Field.Store.NO));
       writer.addDocument(doc);
       Map<String,String> data = new HashMap<String,String>();
       data.put("index", i+"");
Index: lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(working copy)
@@ -23,6 +23,7 @@
 import java.lang.reflect.Modifier;
 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.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -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(newTextField("default", "one two", Field.Store.YES));
     writer.addDocument(d1);
 
     Document d2 = new Document();
-    d2.add(newField("default","one three", TextField.TYPE_STORED));
+    d2.add(newTextField("default", "one three", Field.Store.YES));
     writer.addDocument(d2);
 
     Document d3 = new Document();
-    d3.add(newField("default","two four", TextField.TYPE_STORED));
+    d3.add(newTextField("default", "two four", Field.Store.YES));
     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 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(working copy)
@@ -25,6 +25,7 @@
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IOContext;
@@ -73,7 +74,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(newTextField(term.field(), term.text(), Field.Store.NO));
       writer.addDocument(d1);
     }
     writer.commit();
Index: lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(working copy)
@@ -19,6 +19,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.TextField;
 import org.apache.lucene.store.Directory;
@@ -39,7 +40,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(newTextField("content", "aaa " + (i%4), Field.Store.NO));
       w.addDocument(doc);
     }
     assertEquals(80, w.maxDoc());
@@ -85,7 +86,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(newTextField("content", "aaa " + (i%4), Field.Store.NO));
         w.addDocument(doc);
         int count = w.getSegmentCount();
         maxCount = Math.max(count, maxCount);
@@ -121,8 +122,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(newStringField("id", "" + i, Field.Store.NO));
+      doc.add(newTextField("content", "aaa " + i, Field.Store.NO));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(working copy)
@@ -159,12 +159,12 @@
 
   private void addDoc(RandomIndexWriter w, Collection<String> terms, Map<BytesRef,Integer> termToID, int id) throws IOException {
     Document doc = new Document();
-    doc.add(new IntField("id", id));
+    doc.add(new IntField("id", id, Field.Store.NO));
     if (VERBOSE) {
       System.out.println("TEST: addDoc id:" + id + " terms=" + terms);
     }
     for (String s2 : terms) {
-      doc.add(newField("f", s2, StringField.TYPE_UNSTORED));
+      doc.add(newStringField("f", s2, Field.Store.NO));
       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 = newStringField(FIELD, term, Field.Store.NO);
       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(newTextField("field", "one two three", Field.Store.NO));
     doc = new Document();
-    doc.add(newField("field2", "one two three", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field2", "one two three", Field.Store.NO));
     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(newTextField("field", "aaa", Field.Store.NO));
     w.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("field", "bbb", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("field", "bbb", Field.Store.NO));
     w.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("field", "ccc", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "ccc", Field.Store.NO));
     w.addDocument(doc);
 
     w.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestSameTokenSamePosition.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 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.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
Index: lucene/core/src/test/org/apache/lucene/index/TestNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(working copy)
@@ -68,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 = newTextField("foo", "", Field.Store.NO);
+    Field bar = newTextField("bar", "", Field.Store.NO);
     doc.add(foo);
     doc.add(bar);
     
@@ -189,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 TextField(byteTestField, "" + boost, Field.Store.YES);
       f.setBoost(boost);
       doc.add(f);
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java	(revision 1348347)
+++ 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 = newTextField("foo", "", Field.Store.NO);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(working copy)
@@ -142,7 +142,7 @@
       Document doc = new Document();
       doc.add(new Field("numbers", English.intToEnglish(i), ft));
       doc.add(new Field("oddeven", (i % 2) == 0 ? "even" : "odd", ft));
-      doc.add(new StringField("id", "" + i));
+      doc.add(new StringField("id", "" + i, Field.Store.NO));
       w.addDocument(doc);
     }
     
@@ -237,7 +237,7 @@
 
     for(int docCount=0;docCount<numDocs;docCount++) {
       Document doc = new Document();
-      doc.add(new IntField("id", docCount));
+      doc.add(new IntField("id", docCount, Field.Store.NO));
       List<Token> tokens = new ArrayList<Token>();
       final int numTokens = atLeast(100);
       //final int numTokens = atLeast(20);
Index: lucene/core/src/test/org/apache/lucene/index/TestDoc.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDoc.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDoc.java	(working copy)
@@ -30,6 +30,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -182,7 +183,7 @@
    {
       File file = new File(workDir, fileName);
       Document doc = new Document();
-      doc.add(new TextField("contents", new FileReader(file)));
+      doc.add(new TextField("contents", new FileReader(file), Field.Store.NO));
       writer.addDocument(doc);
       writer.commit();
       return writer.newestSegment();
Index: lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java	(revision 1348347)
+++ 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 = newStringField("id", "", Field.Store.NO);
+    Field field1 = newTextField("foo", "", Field.Store.NO);
+    Field field2 = newTextField("bar", "", Field.Store.NO);
     doc.add(id);
     doc.add(field1);
     doc.add(field2);
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util._TestUtil;
@@ -135,7 +136,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+    doc.add(newTextField("content", value, Field.Store.NO));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(working copy)
@@ -23,6 +23,7 @@
 import java.util.Arrays;
 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.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -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(newTextField("c", "a" + i, Field.Store.YES));
       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/TestTermsEnum2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(working copy)
@@ -62,7 +62,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 = newStringField("field", "", Field.Store.YES);
     doc.add(field);
     terms = new TreeSet<BytesRef>();
  
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(working copy)
@@ -21,6 +21,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.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -280,7 +281,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newTextField("content", value, Field.Store.NO));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(working copy)
@@ -528,7 +528,7 @@
     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(newTextField("tvtest", "x y z", Field.Store.NO));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
@@ -558,7 +558,7 @@
     iw.commit();
 
     document = new Document();
-    document.add(newField("tvtest", "x y z", TextField.TYPE_UNSTORED));
+    document.add(newTextField("tvtest", "x y z", Field.Store.NO));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
Index: lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.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.TextField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
@@ -137,7 +138,7 @@
    */
   private Document getDocument() {
     Document document = new Document();
-    document.add(newField(TEXT_FIELD, "my dog has fleas", TextField.TYPE_UNSTORED));
+    document.add(newTextField(TEXT_FIELD, "my dog has fleas", Field.Store.NO));
     return document;
   }
     
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(working copy)
@@ -63,15 +63,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(newTextField("f1", "This field has no payloads", Field.Store.NO));
         // 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(newTextField("f2", "This field has payloads in all docs", Field.Store.NO));
+        d.add(newTextField("f2", "This field has payloads in all docs NO PAYLOAD", Field.Store.NO));
         // 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(newTextField("f3", "This field has payloads in some docs", Field.Store.NO));
         // only add payload data for field f2
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         writer.addDocument(d);
@@ -91,10 +91,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(newTextField("f1", "This field has no payloads", Field.Store.NO));
+        d.add(newTextField("f2", "This field has payloads in all docs", Field.Store.NO));
+        d.add(newTextField("f2", "This field has payloads in all docs", Field.Store.NO));
+        d.add(newTextField("f3", "This field has payloads in some docs", Field.Store.NO));
         // add payload data for field f2 and f3
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         analyzer.setPayloadData("f3", "somedata".getBytes(), 0, 3);
@@ -151,7 +151,7 @@
         byte[] payloadData = generateRandomData(payloadDataLength);
         
         Document d = new Document();
-        d.add(newField(fieldName, content, TextField.TYPE_UNSTORED));
+        d.add(newTextField(fieldName, content, Field.Store.NO));
         // add the same document multiple times to have the same payload lengths for all
         // occurrences within two consecutive skip intervals
         int offset = 0;
@@ -285,7 +285,7 @@
         String singleTerm = "lucene";
         
         d = new Document();
-        d.add(newField(fieldName, singleTerm, TextField.TYPE_UNSTORED));
+        d.add(newTextField(fieldName, singleTerm, Field.Store.NO));
         // add a payload whose length is greater than the buffer size of BufferedIndexOutput
         payloadData = generateRandomData(2000);
         analyzer.setPayloadData(fieldName, payloadData, 100, 1500);
@@ -581,14 +581,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 TextField("hasMaybepayload", "here we go", Field.Store.YES));
     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 TextField("hasMaybepayload2", "here we go", Field.Store.YES));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(working copy)
@@ -111,7 +111,7 @@
     for (int i = start; i < (start + numDocs); i++)
     {
       Document temp = new Document();
-      temp.add(newField("count", (""+i), StringField.TYPE_STORED));
+      temp.add(newStringField("count", (""+i), Field.Store.YES));
 
       writer.addDocument(temp);
     }
@@ -137,7 +137,7 @@
     customType1.setStoreTermVectorPositions(true);
     customType1.setStoreTermVectorOffsets(true);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newStringField("id", "", Field.Store.NO);
     document.add(idField);
     Field storedField = newField("stored", "stored", customType);
     document.add(storedField);
@@ -204,7 +204,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newStringField("id", "", Field.Store.NO);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
@@ -270,7 +270,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newStringField("id", "", Field.Store.NO);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
Index: lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(working copy)
@@ -43,8 +43,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 StringField("f1", "first field", Field.Store.YES));
+      d1.add(new StringField("f2", "second field", Field.Store.YES));
       writer.addDocument(d1);
 
       if (i == 1) {
@@ -57,10 +57,10 @@
       Document d2 = new Document();
       FieldType customType2 = new FieldType(TextField.TYPE_STORED);
       customType2.setStoreTermVectors(true);
-      d2.add(new TextField("f2", "second field"));
+      d2.add(new TextField("f2", "second field", Field.Store.NO));
       d2.add(new Field("f1", "first field", customType2));
-      d2.add(new TextField("f3", "third field"));
-      d2.add(new TextField("f4", "fourth field"));
+      d2.add(new TextField("f3", "third field", Field.Store.NO));
+      d2.add(new TextField("f4", "fourth field", Field.Store.NO));
       writer.addDocument(d2);
 
       writer.close();
@@ -106,8 +106,8 @@
     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 TextField("f1", "first field", Field.Store.YES));
+    d1.add(new TextField("f2", "second field", Field.Store.YES));
     writer.addDocument(d1);
 
     writer.close();
@@ -116,10 +116,10 @@
     Document d2 = new Document();
     FieldType customType2 = new FieldType(TextField.TYPE_STORED);
     customType2.setStoreTermVectors(true);
-    d2.add(new Field("f2", "second field", TextField.TYPE_STORED));
+    d2.add(new TextField("f2", "second field", Field.Store.YES));
     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 TextField("f3", "third field", Field.Store.YES));
+    d2.add(new TextField("f4", "fourth field", Field.Store.YES));
     writer.addDocument(d2);
 
     writer.close();
@@ -156,8 +156,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 TextField("f1", "d1 first field", Field.Store.YES));
+        d.add(new TextField("f2", "d1 second field", Field.Store.YES));
         writer.addDocument(d);
         writer.close();
         SegmentInfos sis = new SegmentInfos();
@@ -175,7 +175,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 TextField("f1", "d2 first field", Field.Store.YES));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3 }));
         writer.addDocument(d);
         writer.close();
@@ -197,8 +197,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 TextField("f1", "d3 first field", Field.Store.YES));
+        d.add(new TextField("f2", "d3 second field", Field.Store.YES));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3, 4, 5 }));
         writer.addDocument(d);
         writer.close();
@@ -362,7 +362,7 @@
     
     switch (mode) {
       case 0: return new Field(fieldName, "some text", customType);
-      case 1: return new TextField(fieldName, "some text");
+      case 1: return new TextField(fieldName, "some text", Field.Store.NO);
       case 2: return new Field(fieldName, "some text", customType2);
       case 3: return new Field(fieldName, "some text", customType3);
       case 4: return new Field(fieldName, "some text", customType4);
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(working copy)
@@ -26,6 +26,7 @@
 import java.util.Map;
 import java.util.HashMap;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -131,7 +132,7 @@
 
     for(int currentRecordId=1;currentRecordId<=100;currentRecordId++) {
       Document doc=new Document();
-      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId,TextField.TYPE_STORED));
+      doc.add(newTextField(FIELD_RECORD_ID, ""+currentRecordId, Field.Store.YES));
       w.addDocument(doc);
 			
       if (currentRecordId%10 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(working copy)
@@ -25,6 +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.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -194,7 +195,7 @@
               assert fieldUpto < fieldCount;
               if (fieldUpto == 0) {
                 fieldUpto = 1;
-                return newField("id", ""+finalDocCount, StringField.TYPE_STORED);
+                return newStringField("id", ""+finalDocCount, Field.Store.YES);
               } else {
                 return new MyField(finalBaseCount + (fieldUpto++-1));
               }
Index: lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(working copy)
@@ -119,8 +119,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(newTextField("repeated", "repeated one", Field.Store.YES));
+    doc.add(newTextField("repeated", "repeated two", Field.Store.YES));
 
     writer.addDocument(doc);
     writer.commit();
@@ -192,7 +192,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(newTextField("f1", "a 5 a a", Field.Store.YES));
 
     writer.addDocument(doc);
     writer.commit();
@@ -235,8 +235,7 @@
           return true;
         }        
       }
-      
-    }));
+      }));
     
     writer.addDocument(doc);
     writer.commit();
@@ -269,7 +268,7 @@
   public void testMixedTermVectorSettingsSameField() throws Exception {
     Document doc = new Document();
     // f1 first without tv then with tv
-    doc.add(newField("f1", "v1", StringField.TYPE_STORED));
+    doc.add(newStringField("f1", "v1", Field.Store.YES));
     FieldType customType2 = new FieldType(StringField.TYPE_STORED);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -277,7 +276,7 @@
     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(newStringField("f2", "v2", Field.Store.YES));
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.codecs.FieldInfosReader;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -196,8 +197,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(newTextField("content", "aaa", Field.Store.NO));
+    doc.add(newStringField("id", Integer.toString(id), Field.Store.NO));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java	(revision 1348347)
+++ 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 = newStringField("f", "", Field.Store.NO);
               doc.add(f);
               int count = 0;
               do {
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java	(revision 1348347)
+++ 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 TextField("id", "1", Field.Store.NO));
         writer.addDocument(doc);
         holder.reader = currentReader = writer.getReader(true);
         Term term = new Term("id");
Index: lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(working copy)
@@ -249,13 +249,13 @@
         if (random().nextBoolean()) {
           final float f = random().nextFloat();
           answer = Float.valueOf(f);
-          nf = new FloatField("nf", f);
+          nf = new FloatField("nf", f, Field.Store.NO);
           sf = new StoredField("nf", f);
           typeAnswer = NumericType.FLOAT;
         } else {
           final double d = random().nextDouble();
           answer = Double.valueOf(d);
-          nf = new DoubleField("nf", d);
+          nf = new DoubleField("nf", d, Field.Store.NO);
           sf = new StoredField("nf", d);
           typeAnswer = NumericType.DOUBLE;
         }
@@ -264,13 +264,13 @@
         if (random().nextBoolean()) {
           final int i = random().nextInt();
           answer = Integer.valueOf(i);
-          nf = new IntField("nf", i);
+          nf = new IntField("nf", i, Field.Store.NO);
           sf = new StoredField("nf", i);
           typeAnswer = NumericType.INT;
         } else {
           final long l = random().nextLong();
           answer = Long.valueOf(l);
-          nf = new LongField("nf", l);
+          nf = new LongField("nf", l, Field.Store.NO);
           sf = new StoredField("nf", l);
           typeAnswer = NumericType.LONG;
         }
@@ -279,7 +279,7 @@
       doc.add(sf);
       answers[id] = answer;
       typeAnswers[id] = typeAnswer;
-      FieldType ft = new FieldType(IntField.TYPE);
+      FieldType ft = new FieldType(IntField.TYPE_UNSTORED);
       ft.setNumericPrecisionStep(Integer.MAX_VALUE);
       doc.add(new IntField("id", id, ft));
       w.addDocument(doc);
@@ -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 StringField("field2", "value", Field.Store.YES));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(working copy)
@@ -22,6 +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.search.BooleanClause.Occur;
 import org.apache.lucene.search.*;
@@ -123,7 +124,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(newTextField("f3", "v1", Field.Store.YES));
     w2.addDocument(d3);
     w2.close();
     
@@ -297,28 +298,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(newTextField("f1", "v1", Field.Store.YES));
+    d1.add(newTextField("f2", "v1", Field.Store.YES));
+    d1.add(newTextField("f3", "v1", Field.Store.YES));
+    d1.add(newTextField("f4", "v1", Field.Store.YES));
     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(newTextField("f1", "v2", Field.Store.YES));
+    d2.add(newTextField("f2", "v2", Field.Store.YES));
+    d2.add(newTextField("f3", "v2", Field.Store.YES));
+    d2.add(newTextField("f4", "v2", Field.Store.YES));
     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(newTextField("f1", "v3", Field.Store.YES));
+    d3.add(newTextField("f2", "v3", Field.Store.YES));
+    d3.add(newTextField("f3", "v3", Field.Store.YES));
+    d3.add(newTextField("f4", "v3", Field.Store.YES));
     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(newTextField("f1", "v4", Field.Store.YES));
+    d4.add(newTextField("f2", "v4", Field.Store.YES));
+    d4.add(newTextField("f3", "v4", Field.Store.YES));
+    d4.add(newTextField("f4", "v4", Field.Store.YES));
     w.addDocument(d4);
     w.close();
 
@@ -357,22 +358,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(newTextField("f1", "v1", Field.Store.YES));
+    d1.add(newTextField("f2", "v1", Field.Store.YES));
     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(newTextField("f1", "v2", Field.Store.YES));
+    d2.add(newTextField("f2", "v2", Field.Store.YES));
     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(newTextField("f1", "v3", Field.Store.YES));
+    d3.add(newTextField("f2", "v3", Field.Store.YES));
     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(newTextField("f1", "v4", Field.Store.YES));
+    d4.add(newTextField("f2", "v4", Field.Store.YES));
     w1.addDocument(d4);
     w1.close();
     return dir1;
@@ -384,22 +385,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(newTextField("f3", "v1", Field.Store.YES));
+    d1.add(newTextField("f4", "v1", Field.Store.YES));
     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(newTextField("f3", "v2", Field.Store.YES));
+    d2.add(newTextField("f4", "v2", Field.Store.YES));
     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(newTextField("f3", "v3", Field.Store.YES));
+    d3.add(newTextField("f4", "v3", Field.Store.YES));
     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(newTextField("f3", "v4", Field.Store.YES));
+    d4.add(newTextField("f4", "v4", Field.Store.YES));
     w2.addDocument(d4);
     w2.close();
     return dir2;
@@ -411,22 +412,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(newTextField("f3", "v1", Field.Store.YES));
+    d1.add(newTextField("f4", "v1", Field.Store.YES));
     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(newTextField("f3", "v2", Field.Store.YES));
+    d2.add(newTextField("f4", "v2", Field.Store.YES));
     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(newTextField("f3", "v3", Field.Store.YES));
+    d3.add(newTextField("f4", "v3", Field.Store.YES));
     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(newTextField("f3", "v4", Field.Store.YES));
+    d4.add(newTextField("f4", "v4", Field.Store.YES));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(working copy)
@@ -94,14 +94,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 = newTextField("id", "", Field.Store.NO);
       doc.add(idField);
       FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
       customType.setStoreTermVectors(true);
       doc.add(newField("test", "", customType));
       idField.setStringValue("1");
       iw.addDocument(doc);
-      doc.add(newField("test", "", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("test", "", Field.Store.NO));
       idField.setStringValue("2");
       iw.addDocument(doc);
       iw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(working copy)
@@ -557,8 +557,8 @@
   private void addDoc(IndexWriter writer, int id) throws IOException
   {
     Document doc = new Document();
-    doc.add(new TextField("content", "aaa"));
-    doc.add(new Field("id", Integer.toString(id), StringField.TYPE_STORED));
+    doc.add(new TextField("content", "aaa", Field.Store.NO));
+    doc.add(new StringField("id", Integer.toString(id), Field.Store.YES));
     FieldType customType2 = new FieldType(TextField.TYPE_STORED);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
@@ -568,8 +568,8 @@
     doc.add(new Field("content2", "here is more content with aaa aaa aaa", customType2));
     doc.add(new Field("fie\u2C77ld", "field with non-ascii name", customType2));
     // add numeric fields, to test if flex preserves encoding
-    doc.add(new IntField("trieInt", id));
-    doc.add(new LongField("trieLong", (long) id));
+    doc.add(new IntField("trieInt", id, Field.Store.NO));
+    doc.add(new LongField("trieLong", (long) id, Field.Store.NO));
     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 1348347)
+++ 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 = newStringField("field", "", Field.Store.NO);
     doc.add(field);
 
     // we generate aweful prefixes: good for testing.
Index: lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.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.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -60,8 +61,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(newStringField("dc", ""+docCount, Field.Store.YES));
+                doc.add(newTextField("field", "here is some text", Field.Store.YES));
                 w.addDocument(doc);
 
                 if (docCount % 13 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(working copy)
@@ -28,6 +28,7 @@
 
 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.StringField;
 import org.apache.lucene.search.IndexSearcher;
@@ -232,7 +233,7 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newStringField("id", "-"+Integer.toString(id), Field.Store.YES));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -248,7 +249,7 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newStringField("id", "-"+Integer.toString(id), Field.Store.YES));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -261,7 +262,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(newStringField("id", Integer.toString(id), Field.Store.YES));
                     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/TestUniqueTermCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(working copy)
@@ -49,7 +49,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 = newTextField("foo", "", Field.Store.NO);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(working copy)
@@ -237,10 +237,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(newTextField("field", "a a\uffffb", Field.Store.NO));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "a", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "a", Field.Store.NO));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     assertEquals(1, r.docFreq(new Term("field", "a\uffffb")));
@@ -257,7 +257,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(newTextField("f" + i, utf8Data[2*i], Field.Store.YES));
     w.addDocument(doc);
     w.close();
 
@@ -279,7 +279,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(rnd, dir);
     Document d = new Document();
     // Single segment
-    Field f = newField("f", "", StringField.TYPE_UNSTORED);
+    Field f = newStringField("f", "", Field.Store.NO);
     d.add(f);
     char[] chars = new char[2];
     final Set<String> allTerms = new HashSet<String>();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java	(revision 1348347)
+++ 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 = newTextField("field", "", Field.Store.NO);
     doc.add(field);
     field.setStringValue("a b c");
     w.addDocument(doc);
@@ -124,7 +124,7 @@
     for(int id=0;id<NUM_DOCS;id++) {
       Document doc = new Document();
 
-      doc.add(new IntField("id", id));
+      doc.add(new IntField("id", id, Field.Store.NO));
       
       final int termCount = _TestUtil.nextInt(random(), 0, 20*RANDOM_MULTIPLIER);
       while(ordsForDocSet.size() < termCount) {
@@ -137,7 +137,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newStringField("field", termsArray[ord].utf8ToString(), Field.Store.NO);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
@@ -221,7 +221,7 @@
     for(int id=0;id<NUM_DOCS;id++) {
       Document doc = new Document();
 
-      doc.add(new IntField("id", id));
+      doc.add(new IntField("id", id, Field.Store.NO));
       
       final int termCount = _TestUtil.nextInt(random(), 0, 20*RANDOM_MULTIPLIER);
       while(ordsForDocSet.size() < termCount) {
@@ -234,7 +234,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newStringField("field", termsArray[ord].utf8ToString(), Field.Store.NO);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(working copy)
@@ -21,6 +21,7 @@
 
 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.StringField;
 import org.apache.lucene.document.TextField;
@@ -154,7 +155,7 @@
         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(newTextField("contents", English.intToEnglish(n), Field.Store.NO));
         writer.addDocument(d);
       }
 
@@ -198,7 +199,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(newTextField("contents", English.intToEnglish(n), Field.Store.NO));
       writer.addDocument(d);
     }
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(working copy)
@@ -25,6 +25,7 @@
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -87,7 +88,7 @@
 
     Document doc = new Document();
     
-    doc.add(newField(field,val, StringField.TYPE_UNSTORED));
+    doc.add(newStringField(field, val, Field.Store.NO));
     IndexWriter writer = new IndexWriter(
         dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).
Index: lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(working copy)
@@ -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 = newStringField("id", "", Field.Store.YES);
     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 = newStringField("id", "", Field.Store.YES);
     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(newTextField("content", "a b c", Field.Store.NO));
         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 = newStringField("id", "", Field.Store.YES);
     doc.add(idField);
 
     IndexWriter writer = new IndexWriter(
Index: lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java	(revision 1348347)
+++ 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 = newStringField("field", "", Field.Store.NO);
       doc.add(f);
-      final Field idField = newField("id", "", StringField.TYPE_STORED);
+      final Field idField = newStringField("id", "", Field.Store.YES);
       doc.add(idField);
       int num = atLeast(4097);
       if (VERBOSE) {
Index: lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java	(revision 1348347)
+++ 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 StringField("id", "" + i, Field.Store.NO));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(working copy)
@@ -477,7 +477,7 @@
      public void run() {
        try {
          Document doc = new Document();
-         Field field = newField("field", "testData", TextField.TYPE_STORED);
+         Field field = newTextField("field", "testData", Field.Store.YES);
          doc.add(field);
          IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
              TEST_VERSION_CURRENT, new MockAnalyzer(random())));
Index: lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(working copy)
@@ -233,7 +233,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 TextField("id", i + "", Field.Store.YES));
       sourceTypes[i] = valueType;
       switch (valueType) {
       case VAR_INTS:
Index: lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(working copy)
@@ -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 TextField(floatTestField, "" + nextFloat, Field.Store.YES);
       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 TextField(exceptionTestField, "" + nextFloat, Field.Store.YES);
         f.setBoost(nextFloat);
 
         doc.add(f);
@@ -126,8 +125,8 @@
     config.setSimilarity(similarity);
     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 = newTextField("foo", "", Field.Store.NO);
+    Field bar = newTextField("bar", "", Field.Store.NO);
     doc.add(foo);
     doc.add(bar);
     
Index: lucene/core/src/test/org/apache/lucene/index/TestForTooMuchCloning.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestForTooMuchCloning.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestForTooMuchCloning.java	(working copy)
@@ -19,6 +19,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.search.IndexSearcher;
 import org.apache.lucene.search.TermRangeQuery;
@@ -49,7 +50,7 @@
         sb.append(' ');
       }
       final Document doc = new Document();
-      doc.add(new TextField("field", sb.toString()));
+      doc.add(new TextField("field", sb.toString(), Field.Store.NO));
       w.addDocument(doc);
     }
     final IndexReader r = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java	(revision 1348347)
+++ 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(newStringField("id", Integer.toString(nextID++), Field.Store.YES));
+        d.add(newTextField("contents", English.intToEnglish(n), Field.Store.NO));
         writer.addDocument(d);
       }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(working copy)
@@ -27,6 +27,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.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -728,15 +729,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(newTextField("content", "aaa", Field.Store.NO));
+    doc.add(newStringField("id", "" + id, Field.Store.NO));
     writer.addDocument(doc);
   }
   
   private void addDoc(IndexWriter writer) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("content", "aaa", Field.Store.NO));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java	(revision 1348347)
+++ 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 = newTextField("field", s, Field.Store.NO);
 	    final int count = _TestUtil.nextInt(random(), 1, 4);
 	    for(int ct=0;ct<count;ct++) {
 	      doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(working copy)
@@ -26,6 +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.Field.Store;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocumentsWriterPerThread.IndexingChain;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -280,7 +281,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(newTextField("foo", "bar", Store.YES));
     RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
     riw.addDocument(doc);
     riw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(working copy)
@@ -22,6 +22,7 @@
 
 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.search.IndexSearcher;
 import org.apache.lucene.search.PhraseQuery;
@@ -97,7 +98,7 @@
                 content = this.term3 + " " + this.term2;
             }
 
-            doc.add(newField(this.field, content, TextField.TYPE_STORED));
+            doc.add(newTextField(this.field, content, Field.Store.YES));
             writer.addDocument(doc);
         }
         
@@ -146,7 +147,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(newTextField(this.field, "a b", Field.Store.YES));
             writer.addDocument(doc);
         }
         
Index: lucene/core/src/test/org/apache/lucene/index/TestCrash.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(working copy)
@@ -20,6 +20,7 @@
 import java.io.IOException;
 import java.util.Random;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.NoLockFactory;
@@ -44,8 +45,8 @@
     }
     
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", "0", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("content", "aaa", Field.Store.NO));
+    doc.add(newTextField("id", "0", Field.Store.NO));
     for(int i=0;i<157;i++)
       writer.addDocument(doc);
 
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(working copy)
@@ -21,6 +21,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.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
@@ -34,7 +35,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("content", "aaa", Field.Store.NO));
     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 +76,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("content", "aaa", Field.Store.NO));
 
     LogDocMergePolicy ldmp = new LogDocMergePolicy();
     ldmp.setMinMergeDocs(1);
@@ -179,7 +180,7 @@
               setMergePolicy(newLogMergePolicy(51))
       );
       Document doc = new Document();
-      doc.add(newField("field", "aaa", StringField.TYPE_UNSTORED));
+      doc.add(newStringField("field", "aaa", Field.Store.NO));
       for(int i=0;i<100;i++)
         writer.addDocument(doc);
       writer.forceMerge(1, false);
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(working copy)
@@ -21,6 +21,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.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -44,8 +45,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(newTextField("field1", "the quick brown fox jumps", Field.Store.YES));
+    doc.add(newTextField("field2", "the quick brown fox jumps", Field.Store.YES));
     iw1.addDocument(doc);
 
     iw1.close();
@@ -54,8 +55,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(newTextField("field1", "the fox jumps over the lazy dog", Field.Store.YES));
+    doc.add(newTextField("field3", "the fox jumps over the lazy dog", Field.Store.YES));
     iw2.addDocument(doc);
 
     iw2.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(working copy)
@@ -22,6 +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.search.BooleanClause.Occur;
 import org.apache.lucene.search.*;
@@ -122,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(newTextField("f3", "v1", Field.Store.YES));
     w2.addDocument(d3);
     w2.close();
     
@@ -238,16 +239,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(newTextField("f1", "v1", Field.Store.YES));
+    d1.add(newTextField("f2", "v1", Field.Store.YES));
+    d1.add(newTextField("f3", "v1", Field.Store.YES));
+    d1.add(newTextField("f4", "v1", Field.Store.YES));
     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(newTextField("f1", "v2", Field.Store.YES));
+    d2.add(newTextField("f2", "v2", Field.Store.YES));
+    d2.add(newTextField("f3", "v2", Field.Store.YES));
+    d2.add(newTextField("f4", "v2", Field.Store.YES));
     w.addDocument(d2);
     w.close();
 
@@ -269,12 +270,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(newTextField("f1", "v1", Field.Store.YES));
+    d1.add(newTextField("f2", "v1", Field.Store.YES));
     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(newTextField("f1", "v2", Field.Store.YES));
+    d2.add(newTextField("f2", "v2", Field.Store.YES));
     w1.addDocument(d2);
     w1.close();
     return dir1;
@@ -284,12 +285,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(newTextField("f3", "v1", Field.Store.YES));
+    d3.add(newTextField("f4", "v1", Field.Store.YES));
     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(newTextField("f3", "v2", Field.Store.YES));
+    d4.add(newTextField("f4", "v2", Field.Store.YES));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestDocCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(working copy)
@@ -18,6 +18,7 @@
  */
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -51,7 +52,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(newStringField("" + _TestUtil.nextInt(random(), 'a', 'z'), "" + _TestUtil.nextInt(random(), 'a', 'z'), Field.Store.NO));
     }
     return doc;
   }
Index: lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(working copy)
@@ -22,6 +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.FieldType;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
@@ -326,7 +327,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("foo", "bar", Field.Store.NO));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
@@ -351,7 +352,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("foo", "bar", Field.Store.NO));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(working copy)
@@ -131,7 +131,7 @@
         new MockAnalyzer(random)).setOpenMode(
         create ? OpenMode.CREATE : OpenMode.APPEND));
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_UNSTORED));
+    doc.add(newTextField("body", s, Field.Store.NO));
     iw.addDocument(doc);
     iw.close();
   }
@@ -178,10 +178,10 @@
       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 StringField("keyword", "test1", Field.Store.YES));
+      doc.add(new TextField("text", "test1", Field.Store.YES));
       doc.add(new Field("unindexed", "test1", customType3));
-      doc.add(new TextField("unstored","test1"));
+      doc.add(new TextField("unstored","test1", Field.Store.NO));
       writer.addDocument(doc);
 
       writer.close();
@@ -204,19 +204,19 @@
       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 StringField("keyword", "test1", Field.Store.YES));
+        doc.add(new TextField("text", "test1", Field.Store.YES));
         doc.add(new Field("unindexed", "test1", customType3));
-        doc.add(new TextField("unstored","test1"));
+        doc.add(new TextField("unstored","test1", Field.Store.NO));
         writer.addDocument(doc);
       }
       // 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 StringField("keyword2", "test1", Field.Store.YES));
+        doc.add(new TextField("text2", "test1", Field.Store.YES));
         doc.add(new Field("unindexed2", "test1", customType3));
-        doc.add(new TextField("unstored2","test1"));
+        doc.add(new TextField("unstored2","test1", Field.Store.NO));
         writer.addDocument(doc);
       }
       // new termvector fields
@@ -236,7 +236,7 @@
       
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("tvnot", "tvnot", TextField.TYPE_STORED));
+        doc.add(new TextField("tvnot", "tvnot", Field.Store.YES));
         doc.add(new Field("termvector", "termvector", customType5));
         doc.add(new Field("tvoffset", "tvoffset", customType6));
         doc.add(new Field("tvposition", "tvposition", customType7));
@@ -334,7 +334,7 @@
   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 TextField("tvnot", "one two two three three three", Field.Store.YES));
       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));
@@ -383,7 +383,7 @@
       writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(OpenMode.APPEND).setMergePolicy(newLogMergePolicy()));
       Document doc = new Document();
       doc.add(new StoredField("bin1", bin));
-      doc.add(new TextField("junk", "junk text"));
+      doc.add(new TextField("junk", "junk text", Field.Store.NO));
       writer.addDocument(doc);
       writer.close();
       DirectoryReader reader = DirectoryReader.open(dir);
@@ -495,10 +495,10 @@
       
       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(newStringField("keyword", "test1", Field.Store.YES));
+      doc.add(newTextField("text", "test1", Field.Store.YES));
       doc.add(newField("unindexed", "test1", customType3));
-      doc.add(new TextField("unstored","test1"));
+      doc.add(new TextField("unstored","test1", Field.Store.NO));
       writer.addDocument(doc);
   }
 
@@ -508,10 +508,10 @@
     
     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(newStringField("keyword2", "test1", Field.Store.YES));
+    doc.add(newTextField("text2", "test1", Field.Store.YES));
     doc.add(newField("unindexed2", "test1", customType3));
-    doc.add(new TextField("unstored2","test1"));
+    doc.add(new TextField("unstored2","test1", Field.Store.NO));
     writer.addDocument(doc);
   }
 
@@ -530,7 +530,7 @@
       customType8.setStoreTermVectors(true);
       customType8.setStoreTermVectorOffsets(true);
       customType8.setStoreTermVectorPositions(true);
-      doc.add(newField("tvnot","tvnot",TextField.TYPE_STORED));
+      doc.add(newTextField("tvnot", "tvnot", Field.Store.YES));
       doc.add(newField("termvector","termvector",customType5));
       doc.add(newField("tvoffset","tvoffset", customType6));
       doc.add(newField("tvposition","tvposition", customType7));
@@ -541,7 +541,7 @@
   
   static void addDoc(IndexWriter writer, String value) throws IOException {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newTextField("content", value, Field.Store.NO));
       writer.addDocument(doc);
   }
 
@@ -766,7 +766,7 @@
             setMergePolicy(newLogMergePolicy(10))
     );
     Document doc = new Document();
-    doc.add(newField("number", "17", StringField.TYPE_UNSTORED));
+    doc.add(newStringField("number", "17", Field.Store.NO));
     writer.addDocument(doc);
     writer.commit();
   
@@ -799,8 +799,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(newTextField("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", Field.Store.NO));
+    doc.add(newTextField("number", "0 1 2 3 4 5 6 7 8 9", Field.Store.NO));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.commit();
@@ -828,8 +828,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(newTextField("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", Field.Store.NO));
+    doc.add(newTextField("number", "0 1 2 3 4 5 6 7 8 9", Field.Store.NO));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.close();
@@ -936,7 +936,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(newTextField("f", "a a b", Field.Store.NO));
     writer.addDocument(d);
     DirectoryReader r = writer.getReader();
     writer.close();
@@ -1073,8 +1073,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(newStringField("field1", "foobar", Field.Store.YES));
+    doc.add(newStringField("field2", "foobaz", Field.Store.YES));
     writer.addDocument(doc);
     DirectoryReader r = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(working copy)
@@ -28,6 +28,7 @@
 
 import org.apache.lucene.analysis.*;
 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.TextField;
@@ -58,10 +59,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(newStringField("id", keywords[i], Field.Store.YES));
       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(newTextField("contents", unstored[i], Field.Store.NO));
+      doc.add(newTextField("city", text[i], Field.Store.YES));
       modifier.addDocument(doc);
     }
     modifier.forceMerge(1);
@@ -383,9 +384,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(newTextField("content", "aaa", Field.Store.NO));
+    doc.add(newStringField("id", String.valueOf(id), Field.Store.YES));
+    doc.add(newStringField("value", String.valueOf(value), Field.Store.NO));
     modifier.updateDocument(new Term("id", String.valueOf(id)), doc);
   }
 
@@ -393,9 +394,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(newTextField("content", "aaa", Field.Store.NO));
+    doc.add(newStringField("id", String.valueOf(id), Field.Store.YES));
+    doc.add(newStringField("value", String.valueOf(value), Field.Store.NO));
     modifier.addDocument(doc);
   }
 
@@ -432,8 +433,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(newStringField("id", Integer.toString(i), Field.Store.YES));
+      d.add(newTextField("content", "aaa " + i, Field.Store.NO));
       writer.addDocument(d);
     }
     writer.close();
@@ -510,8 +511,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(newStringField("id", Integer.toString(i), Field.Store.YES));
+                d.add(newTextField("content", "bbb " + i, Field.Store.NO));
                 modifier.updateDocument(new Term("id", Integer.toString(docId)), d);
               } else { // deletes
                 modifier.deleteDocuments(new Term("id", Integer.toString(docId)));
@@ -702,10 +703,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(newStringField("id", keywords[i], Field.Store.YES));
       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(newTextField("contents", unstored[i], Field.Store.NO));
+      doc.add(newTextField("city", text[i], Field.Store.YES));
       modifier.addDocument(doc);
     }
     // flush (and commit if ac)
@@ -823,10 +824,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(newStringField("id", keywords[i], Field.Store.YES));
       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(newTextField("contents", unstored[i], Field.Store.NO));
+      doc.add(newTextField("city", text[i], Field.Store.YES));
       try {
         modifier.addDocument(doc);
       } catch (IOException io) {
@@ -869,7 +870,7 @@
     Collections.shuffle(ids, random());
     for(int id : ids) {
       Document doc = new Document();
-      doc.add(newField("id", ""+id, StringField.TYPE_UNSTORED));
+      doc.add(newStringField("id", ""+id, Field.Store.NO));
       w.addDocument(doc);
     }
     Collections.shuffle(ids, random());
@@ -905,7 +906,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(newTextField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", Field.Store.NO));
     int num = atLeast(3);
     for (int iter = 0; iter < num; iter++) {
       int count = 0;
@@ -949,7 +950,7 @@
     int count = 0;
     while(true) {
       Document doc = new Document();
-      doc.add(new StringField("id", count+""));
+      doc.add(new StringField("id", count+"", Field.Store.NO));
       final Term delTerm;
       if (count == 1010) {
         // This is the only delete that applies
@@ -995,7 +996,7 @@
     int count = 0;
     while(true) {
       Document doc = new Document();
-      doc.add(new StringField("id", count+""));
+      doc.add(new StringField("id", count+"", Field.Store.NO));
       final Term delTerm;
       if (count == 1010) {
         // This is the only delete that applies
@@ -1050,8 +1051,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(newStringField("id", ""+id, Field.Store.NO));
+      doc.add(newTextField("body", sb.toString(), Field.Store.NO));
       w.updateDocument(new Term("id", ""+id), doc);
       docsInSegment.incrementAndGet();
       // TODO: fix this test
Index: lucene/core/src/test/org/apache/lucene/index/TestRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(working copy)
@@ -19,6 +19,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.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -31,7 +32,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(newStringField("pk", Integer.toString(i), Field.Store.YES));
       rw.addDocument(doc);
     }
     rw.close();
@@ -42,8 +43,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(newStringField("pk", value, Field.Store.YES));
+      doc.add(newStringField("text", "foo", Field.Store.YES));
       w.updateDocument(new Term("pk", value), doc);
     }
     w.rollback();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(working copy)
@@ -68,7 +68,7 @@
     for (int i = 0; i < 5; i++) {
       Document doc = new Document();
       doc.add(new PackedLongDocValuesField("docId", i));
-      doc.add(new TextField("docId", "" + i));
+      doc.add(new TextField("docId", "" + i, Field.Store.NO));
       writer.addDocument(doc);
     }
     writer.commit();
@@ -121,7 +121,7 @@
     Directory d1 = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d1);
     Document doc = new Document();
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newStringField("id", "1", Field.Store.YES));
     doc.add(new PackedLongDocValuesField("dv", 1));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
@@ -130,7 +130,7 @@
     Directory d2 = newDirectory();
     w = new RandomIndexWriter(random(), d2);
     doc = new Document();
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newStringField("id", "2", Field.Store.YES));
     doc.add(new PackedLongDocValuesField("dv", 2));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
@@ -700,7 +700,7 @@
         }
       }
       doc.removeFields("id");
-      doc.add(new Field("id", idBase + i, StringField.TYPE_STORED));
+      doc.add(new StringField("id", idBase + i, Field.Store.YES));
       w.addDocument(doc);
 
       if (i % 7 == 0) {
@@ -796,7 +796,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(newTextField("id", "" + i, Field.Store.YES));
         String string = fixed ? _TestUtil.randomFixedByteLengthUnicodeString(random(),
             len) : _TestUtil.randomRealisticUnicodeString(random(), 1, len);
         BytesRef br = new BytesRef(string);
@@ -811,7 +811,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(newTextField("id", "noValue", Field.Store.YES));
         w.addDocument(doc);
       }
       BytesRef bytesRef = new BytesRef(fixed ? len : 0);
@@ -824,7 +824,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(newTextField("id", id, Field.Store.YES));
         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/TestOmitTf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(working copy)
@@ -229,7 +229,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 = newTextField("f1", "This field has positions", Field.Store.NO);
     d.add(f1);
     
     for(int i=0;i<30;i++)
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(revision 1348347)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(working copy)
@@ -21,6 +21,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.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
@@ -223,7 +224,7 @@
 
   private void addDoc(IndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("content", "aaa", Field.Store.NO));
     writer.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java	(revision 1348347)
+++ 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(newTextField(PRIORITY_FIELD, HIGH_PRIORITY, Field.Store.YES));
+        d.add(newTextField(ID_FIELD, Integer.toString(j), Field.Store.YES));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java
===================================================================
--- lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java	(revision 1348347)
+++ lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java	(working copy)
@@ -33,6 +33,7 @@
 import org.apache.lucene.benchmark.byTask.utils.Config;
 import org.apache.lucene.benchmark.byTask.utils.StreamUtils.Type;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 
 /** Tests the functionality of {@link WriteLineDocTask}. */
@@ -44,9 +45,9 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(BODY_FIELD, "body"));
-      doc.add(new StringField(TITLE_FIELD, "title"));
-      doc.add(new StringField(DATE_FIELD, "date"));
+      doc.add(new StringField(BODY_FIELD, "body", Field.Store.NO));
+      doc.add(new StringField(TITLE_FIELD, "title", Field.Store.NO));
+      doc.add(new StringField(DATE_FIELD, "date", Field.Store.NO));
       return doc;
     }
     
@@ -58,9 +59,9 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(BODY_FIELD, "body\r\ntext\ttwo"));
-      doc.add(new StringField(TITLE_FIELD, "title\r\ntext"));
-      doc.add(new StringField(DATE_FIELD, "date\r\ntext"));
+      doc.add(new StringField(BODY_FIELD, "body\r\ntext\ttwo", Field.Store.NO));
+      doc.add(new StringField(TITLE_FIELD, "title\r\ntext", Field.Store.NO));
+      doc.add(new StringField(DATE_FIELD, "date\r\ntext", Field.Store.NO));
       return doc;
     }
     
@@ -71,8 +72,8 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(TITLE_FIELD, "title"));
-      doc.add(new StringField(DATE_FIELD, "date"));
+      doc.add(new StringField(TITLE_FIELD, "title", Field.Store.NO));
+      doc.add(new StringField(DATE_FIELD, "date", Field.Store.NO));
       return doc;
     }
   }
@@ -82,8 +83,8 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(BODY_FIELD, "body"));
-      doc.add(new StringField(DATE_FIELD, "date"));
+      doc.add(new StringField(BODY_FIELD, "body", Field.Store.NO));
+      doc.add(new StringField(DATE_FIELD, "date", Field.Store.NO));
       return doc;
     }
   }
@@ -93,7 +94,7 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(DATE_FIELD, "date"));
+      doc.add(new StringField(DATE_FIELD, "date", Field.Store.NO));
       return doc;
     }
   }
@@ -104,7 +105,7 @@
     @Override
     public Document makeDocument() throws Exception {
       Document doc = new Document();
-      doc.add(new StringField(DATE_FIELD, "date"));
+      doc.add(new StringField(DATE_FIELD, "date", Field.Store.NO));
       return doc;
     }
   }
@@ -124,9 +125,9 @@
     public Document makeDocument() throws Exception {
       Document doc = new Document();
       String name = Thread.currentThread().getName();
-      doc.add(new StringField(BODY_FIELD, "body_" + name));
-      doc.add(new StringField(TITLE_FIELD, "title_" + name));
-      doc.add(new StringField(DATE_FIELD, "date_" + name));
+      doc.add(new StringField(BODY_FIELD, "body_" + name, Field.Store.NO));
+      doc.add(new StringField(TITLE_FIELD, "title_" + name, Field.Store.NO));
+      doc.add(new StringField(DATE_FIELD, "date_" + name, Field.Store.NO));
       return doc;
     }
     
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 1348347)
+++ lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java	(working copy)
@@ -114,11 +114,11 @@
         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 StringField(ID_FIELD, "", Field.Store.YES));
         fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));
 
-        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L));
-        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0));
+        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
+        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));
         
         doc = new Document();
       } else {
@@ -157,16 +157,16 @@
       if (f == null) {
         switch(type) {
         case INT:
-          f = new IntField(name, 0);
+          f = new IntField(name, 0, Field.Store.NO);
           break;
         case LONG:
-          f = new LongField(name, 0L);
+          f = new LongField(name, 0L, Field.Store.NO);
           break;
         case FLOAT:
-          f = new FloatField(name, 0.0F);
+          f = new FloatField(name, 0.0F, Field.Store.NO);
           break;
         case DOUBLE:
-          f = new DoubleField(name, 0.0);
+          f = new DoubleField(name, 0.0, Field.Store.NO);
           break;
         default:
           assert false;
Index: lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java
===================================================================
--- lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(revision 1348347)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(working copy)
@@ -45,7 +45,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 StringField("name", "Los Angeles", Field.Store.YES));
     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 1348347)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java	(working copy)
@@ -76,8 +76,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 StringField("id", data.id, Field.Store.YES));
+      document.add(new StringField("name", data.name, Field.Store.YES));
       Shape shape = ctx.readShape(data.shape);
       for (IndexableField f : strategy.createFields(fieldInfo, shape, true, storeShape)) {
         if( f != null ) { // null if incompatibleGeometry && ignore
Index: lucene/spatial/src/java/org/apache/lucene/spatial/util/NumericFieldInfo.java
===================================================================
--- lucene/spatial/src/java/org/apache/lucene/spatial/util/NumericFieldInfo.java	(revision 1348347)
+++ lucene/spatial/src/java/org/apache/lucene/spatial/util/NumericFieldInfo.java	(working copy)
@@ -39,7 +39,7 @@
     if (!store && !index)
       throw new IllegalArgumentException("field must be indexed or stored");
 
-    FieldType fieldType = new FieldType(DoubleField.TYPE);
+    FieldType fieldType = new FieldType(DoubleField.TYPE_UNSTORED);
     fieldType.setStored(store);
     fieldType.setIndexed(index);
     fieldType.setNumericPrecisionStep(precisionStep);
Index: lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
===================================================================
--- lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(revision 1348347)
+++ lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(working copy)
@@ -38,17 +38,17 @@
   // 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(newStringField("docType", "resume", Field.Store.NO));
+    resume.add(newStringField("name", name, Field.Store.YES));
+    resume.add(newStringField("country", country, Field.Store.NO));
     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(new IntField("year", year));
+    job.add(newStringField("skill", skill, Field.Store.YES));
+    job.add(new IntField("year", year, Field.Store.NO));
     job.add(new StoredField("year", year));
     return job;
   }
@@ -56,8 +56,8 @@
   // ... has multiple qualifications
   private Document makeQualification(String qualification, int year) {
     Document job = new Document();
-    job.add(newField("qualification", qualification, StringField.TYPE_STORED));
-    job.add(new IntField("year", year));
+    job.add(newStringField("qualification", qualification, Field.Store.YES));
+    job.add(new IntField("year", year, Field.Store.NO));
     return job;
   }
 
@@ -341,23 +341,21 @@
     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 = newStringField("parentID", ""+parentDocID, Field.Store.YES);
       parentDoc.add(id);
       parentJoinDoc.add(id);
-      parentJoinDoc.add(newField("isParent", "x", StringField.TYPE_UNSTORED));
+      parentJoinDoc.add(newStringField("isParent", "x", Field.Store.NO));
       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);
+          Field f = newStringField("parent" + field, parentFields[field][random().nextInt(parentFields[field].length)], Field.Store.NO);
           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(newStringField("blockID", ""+parentDocID, Field.Store.NO));
+        parentJoinDoc.add(newStringField("blockID", ""+parentDocID, Field.Store.NO));
       }
 
       final List<Document> joinDocs = new ArrayList<Document>();
@@ -381,15 +379,13 @@
         Document joinChildDoc = new Document();
         joinDocs.add(joinChildDoc);
 
-        Field childID = newField("childID", ""+childDocID, StringField.TYPE_STORED);
+        Field childID = newStringField("childID", ""+childDocID, Field.Store.YES);
         childDoc.add(childID);
         joinChildDoc.add(childID);
 
         for(int childFieldID=0;childFieldID<childFields.length;childFieldID++) {
           if (random().nextDouble() < 0.9) {
-            Field f = newField("child" + childFieldID,
-                               childFields[childFieldID][random().nextInt(childFields[childFieldID].length)],
-                               StringField.TYPE_UNSTORED);
+            Field f = newStringField("child" + childFieldID, childFields[childFieldID][random().nextInt(childFields[childFieldID].length)], Field.Store.NO);
             childDoc.add(f);
             joinChildDoc.add(f);
           }
@@ -408,7 +404,7 @@
         }
 
         if (doDeletes) {
-          joinChildDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
+          joinChildDoc.add(newStringField("blockID", ""+parentDocID, Field.Store.NO));
         }
 
         w.addDocument(childDoc);
@@ -942,9 +938,9 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document childDoc = new Document();
-    childDoc.add(newField("child", "1", StringField.TYPE_UNSTORED));
+    childDoc.add(newStringField("child", "1", Field.Store.NO));
     Document parentDoc = new Document();
-    parentDoc.add(newField("parent", "1", StringField.TYPE_UNSTORED));
+    parentDoc.add(newStringField("parent", "1", Field.Store.NO));
     w.addDocuments(Arrays.asList(childDoc, parentDoc));
     IndexReader r = w.getReader();
     w.close();
@@ -966,16 +962,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(newStringField("parent", "1", Field.Store.NO));
+    parentDoc.add(newStringField("isparent", "yes", Field.Store.NO));
     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(newStringField("parent", "2", Field.Store.NO));
+    parentDoc.add(newStringField("isparent", "yes", Field.Store.NO));
     Document childDoc = new Document();
-    childDoc.add(newField("child", "2", StringField.TYPE_UNSTORED));
+    childDoc.add(newStringField("child", "2", Field.Store.NO));
     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 1348347)
+++ 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 TextField("description", "random text", Field.Store.NO));
+    doc.add(new TextField("name", "name1", Field.Store.NO));
+    doc.add(new TextField(idField, "1", Field.Store.NO));
     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 TextField("price", "10.0", Field.Store.NO));
+    doc.add(new TextField(idField, "2", Field.Store.NO));
+    doc.add(new TextField(toField, "1", Field.Store.NO));
     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 TextField("price", "20.0", Field.Store.NO));
+    doc.add(new TextField(idField, "3", Field.Store.NO));
+    doc.add(new TextField(toField, "1", Field.Store.NO));
     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 TextField("description", "more random text", Field.Store.NO));
+    doc.add(new TextField("name", "name2", Field.Store.NO));
+    doc.add(new TextField(idField, "4", Field.Store.NO));
     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 TextField("price", "10.0", Field.Store.NO));
+    doc.add(new TextField(idField, "5", Field.Store.NO));
+    doc.add(new TextField(toField, "4", Field.Store.NO));
     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 TextField("price", "20.0", Field.Store.NO));
+    doc.add(new TextField(idField, "6", Field.Store.NO));
+    doc.add(new TextField(toField, "4", Field.Store.NO));
     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 TextField("description", "A random movie", Field.Store.NO));
+    doc.add(new TextField("name", "Movie 1", Field.Store.NO));
+    doc.add(new TextField(idField, "1", Field.Store.NO));
     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 TextField("subtitle", "The first subtitle of this movie", Field.Store.NO));
+    doc.add(new TextField(idField, "2", Field.Store.NO));
+    doc.add(new TextField(toField, "1", Field.Store.NO));
     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 TextField("subtitle", "random subtitle; random event movie", Field.Store.NO));
+    doc.add(new TextField(idField, "3", Field.Store.NO));
+    doc.add(new TextField(toField, "1", Field.Store.NO));
     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 TextField("description", "A second random movie", Field.Store.NO));
+    doc.add(new TextField("name", "Movie 2", Field.Store.NO));
+    doc.add(new TextField(idField, "4", Field.Store.NO));
     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 TextField("subtitle", "a very random event happened during christmas night", Field.Store.NO));
+    doc.add(new TextField(idField, "5", Field.Store.NO));
+    doc.add(new TextField(toField, "4", Field.Store.NO));
     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 TextField("subtitle", "movie end movie test 123 test 123 random", Field.Store.NO));
+    doc.add(new TextField(idField, "6", Field.Store.NO));
+    doc.add(new TextField(toField, "4", Field.Store.NO));
     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(newTextField(random(), "id", id, Field.Store.NO));
+      document.add(newTextField(random(), "value", value, Field.Store.NO));
 
       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(newTextField(random(), "from", linkValue, Field.Store.NO));
         } 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(newTextField(random(), "to", linkValue, Field.Store.NO));
         }
       }
 
Index: lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java
===================================================================
--- lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(revision 1348347)
+++ 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 = newTextField("foo", fooField.toString(), Field.Store.NO);
+    Field field2 = newTextField("term", termField.toString(), Field.Store.NO);
     doc.add(field1);
     doc.add(field2);
     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 1348347)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java	(working copy)
@@ -20,6 +20,7 @@
 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.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -39,7 +40,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(newTextField("repentance", termsToAdd[i], Field.Store.NO));
       writer.addDocument(doc);
     }
 
@@ -68,7 +69,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", English.intToEnglish(i), Field.Store.NO));
       writer.addDocument(doc);
     }
 
@@ -108,7 +109,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(newTextField("numbers", English.intToEnglish(i), Field.Store.NO));
       writer.addDocument(doc);
     }
 
@@ -132,13 +133,13 @@
         new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
 
     Document doc = new Document();
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("text", "foobar", Field.Store.NO));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("text", "foobar", Field.Store.NO));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobaz", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("text", "foobaz", Field.Store.NO));
     writer.addDocument(doc);
-    doc.add(newField("text", "fobar", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("text", "fobar", Field.Store.NO));
     writer.addDocument(doc);
    
     IndexReader ir = writer.getReader();
@@ -200,7 +201,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", English.intToEnglish(i), Field.Store.NO));
       writer.addDocument(doc);
     }
 
@@ -224,7 +225,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", English.intToEnglish(i), Field.Store.NO));
       writer.addDocument(doc);
     }
 
@@ -249,7 +250,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", English.intToEnglish(i), Field.Store.NO));
       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 1348347)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java	(working copy)
@@ -22,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -54,23 +55,23 @@
     Document doc;
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newTextField("aaa", "foo", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newTextField("aaa", "foo", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Tom", TextField.TYPE_STORED));
+    doc.add(newTextField("contents", "Tom", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Jerry", TextField.TYPE_STORED));
+    doc.add(newTextField("contents", "Jerry", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("zzz", "bar", TextField.TYPE_STORED));
+    doc.add(newTextField("zzz", "bar", Field.Store.YES));
     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 1348347)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java	(working copy)
@@ -28,6 +28,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.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -59,14 +60,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(newTextField("field1", English.intToEnglish(i), Field.Store.YES));
+      doc.add(newTextField("field2", English.intToEnglish(i + 1), Field.Store.YES)); // + word thousand
+      doc.add(newTextField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), Field.Store.YES)); // + word thousand
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "eight", TextField.TYPE_STORED)); // "eight" in
+      doc.add(newTextField("field1", "eight", Field.Store.YES)); // "eight" in
                                                                    // the index
                                                                    // twice
       writer.addDocument(doc);
@@ -74,13 +75,12 @@
     {
       Document doc = new Document();
       doc
-          .add(newField("field1", "twenty-one twenty-one",
-              TextField.TYPE_STORED)); // "twenty-one" in the index thrice
+          .add(newTextField("field1", "twenty-one twenty-one", Field.Store.YES)); // "twenty-one" in the index thrice
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "twenty", TextField.TYPE_STORED)); // "twenty"
+      doc.add(newTextField("field1", "twenty", Field.Store.YES)); // "twenty"
                                                                     // in the
                                                                     // index
                                                                     // twice
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(revision 1348347)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(working copy)
@@ -22,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -44,23 +45,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(newTextField("numbers", num, Field.Store.NO));
       writer.addDocument(doc);
     }
     
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "thou hast sand betwixt thy toes", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", "thou hast sand betwixt thy toes", Field.Store.NO));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "hundredeight eightyeight yeight", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", "hundredeight eightyeight yeight", Field.Store.NO));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "tres y cinco", TextField.TYPE_UNSTORED));
+      doc.add(newTextField("numbers", "tres y cinco", Field.Store.NO));
       writer.addDocument(doc);
     }
     
Index: lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java
===================================================================
--- lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(revision 1348347)
+++ lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(working copy)
@@ -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 StringField(F_WORD, text, Field.Store.YES);
     doc.add(f); // orig term
     addGram(text, doc, ng1, ng2);
     return doc;
@@ -596,14 +596,14 @@
         doc.add(ngramField);
         if (i == 0) {
           // only one term possible in the startXXField, TF/pos and norms aren't needed.
-          Field startField = new StringField("start" + ng, gram);
+          Field startField = new StringField("start" + ng, gram, Field.Store.NO);
           doc.add(startField);
         }
         end = gram;
       }
       if (end != null) { // may not be present if len==ng1
         // only one term possible in the endXXField, TF/pos and norms aren't needed.
-        Field endField = new StringField("end" + ng, end);
+        Field endField = new StringField("end" + ng, end, Field.Store.NO);
         doc.add(endField);
       }
     }
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 1348347)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java	(working copy)
@@ -49,8 +49,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 TextField("variedField", variedFieldValue, Field.Store.YES));
+      doc.add(new TextField("repetitiveField", repetitiveFieldValue, Field.Store.YES));
       writer.addDocument(doc);
     }
     writer.close();
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 1348347)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java	(working copy)
@@ -62,15 +62,15 @@
 
     Document doc;
     doc = new Document();
-    doc.add(new Field("content", "please divide this sentence into shingles", TextField.TYPE_STORED));
+    doc.add(new TextField("content", "please divide this sentence into shingles", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "just another test sentence", TextField.TYPE_STORED));
+    doc.add(new TextField("content", "just another test sentence", Field.Store.YES));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "a sentence which contains no test", TextField.TYPE_STORED));
+    doc.add(new TextField("content", "a sentence which contains no test", Field.Store.YES));
     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 1348347)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
 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.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -58,7 +59,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(newTextField("field", b.toString(), Field.Store.NO));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java	(revision 1348347)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java	(working copy)
@@ -4,6 +4,7 @@
 import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.standard.ClassicAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsAndPositionsEnum;
@@ -262,12 +263,12 @@
 
     // This produces a too-long term:
     String contents = "abc xyz x" + bigTerm + " another term";
-    doc.add(new TextField("content", contents));
+    doc.add(new TextField("content", contents, Field.Store.NO));
     writer.addDocument(doc);
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(new TextField("content", "abc bbb ccc"));
+    doc.add(new TextField("content", "abc bbb ccc", Field.Store.NO));
     writer.addDocument(doc);
     writer.close();
 
@@ -299,7 +300,7 @@
     // Make sure we can add a document with exactly the
     // maximum length term, and search on that term:
     doc = new Document();
-    doc.add(new TextField("content", bigTerm));
+    doc.add(new TextField("content", bigTerm, Field.Store.NO));
     ClassicAnalyzer sa = new ClassicAnalyzer(TEST_VERSION_CURRENT);
     sa.setMaxTokenLength(100000);
     writer  = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, sa));
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 1348347)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java	(working copy)
@@ -53,8 +53,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 StringField("partnum", "Q36", Field.Store.YES));
+    doc.add(new TextField("description", "Illidium Space Modulator", Field.Store.YES));
     writer.addDocument(doc);
 
     writer.close();
@@ -89,10 +89,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 TextField("partnum", "Q36", Field.Store.YES));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(new Field("partnum", "Q37", TextField.TYPE_STORED));
+    doc.add(new TextField("partnum", "Q37", Field.Store.YES));
     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 1348347)
+++ lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java	(working copy)
@@ -69,9 +69,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 TextField("title", dummyTitle, Field.Store.YES));
     String dummyContent = "there is some content written here";
-    doc.add(new Field("contents", dummyContent, TextField.TYPE_STORED));
+    doc.add(new TextField("contents", dummyContent, Field.Store.YES));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
@@ -90,9 +90,9 @@
     // add a second doc
     doc = new Document();
     String dogmasTitle = "dogmas";
-    doc.add(new Field("title", dogmasTitle, TextField.TYPE_STORED));
+    doc.add(new TextField("title", dogmasTitle, Field.Store.YES));
     String dogmasContents = "white men can't jump";
-    doc.add(new Field("contents", dogmasContents, TextField.TYPE_STORED));
+    doc.add(new TextField("contents", dogmasContents, Field.Store.YES));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java	(revision 1348347)
+++ 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(newTextField("content", "random text", Field.Store.YES));
+    doc.add(newStringField("id", "1", Field.Store.YES));
     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(newTextField("content", "some more random text blob", Field.Store.YES));
+    doc.add(newStringField("id", "2", Field.Store.YES));
     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(newTextField("content", "some more random textual data", Field.Store.YES));
+    doc.add(newStringField("id", "3", Field.Store.YES));
     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(newTextField("content", "some random text", Field.Store.YES));
+    doc.add(newStringField("id", "4", Field.Store.YES));
     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(newTextField("content", "some more random text", Field.Store.YES));
+    doc.add(newStringField("id", "5", Field.Store.YES));
     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(newTextField("content", "random blob", Field.Store.YES));
+    doc.add(newStringField("id", "6", Field.Store.YES));
     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(newTextField("content", "random word stuck in alot of other text", Field.Store.YES));
+    doc.add(newStringField("id", "6", Field.Store.YES));
     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(newTextField("content", "random word stuck in alot of other text", Field.Store.YES));
+    doc.add(newStringField("id", "7", Field.Store.YES));
     w.addDocument(doc);
 
     IndexReader reader = w.getReader();
@@ -207,7 +207,7 @@
 
       Document doc = new Document();
       Document docNoGroup = new Document();
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newStringField("group", "", Field.Store.NO);
       doc.add(group);
       Field valuesField = null;
       if (canUseIDV) {
@@ -226,19 +226,19 @@
         }
         doc.add(valuesField);
       }
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newStringField("sort1", "", Field.Store.NO);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newStringField("sort2", "", Field.Store.NO);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field sort3 = newField("sort3", "", StringField.TYPE_UNSTORED);
+      Field sort3 = newStringField("sort3", "", Field.Store.NO);
       doc.add(sort3);
       docNoGroup.add(sort3);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newTextField("content", "", Field.Store.NO);
       doc.add(content);
       docNoGroup.add(content);
-      IntField id = new IntField("id", 0);
+      IntField id = new IntField("id", 0, Field.Store.NO);
       doc.add(id);
       docNoGroup.add(id);
       final GroupDoc[] groupDocs = new GroupDoc[numDocs];
@@ -538,7 +538,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 TextField(groupField, value, Field.Store.YES));
     if (canUseIDV) {
       Field valuesField = null;
       switch(valueType) {
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java	(revision 1348347)
+++ 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 StringField(field, value, Field.Store.NO));
     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 = newStringField("group", "", Field.Store.NO);
     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] = newStringField("facet", "", Field.Store.NO);
       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] = newStringField("facet", "", Field.Store.NO);
         doc.add(facetFields[i]);
         docNoGroup.add(facetFields[i]);
       }
     }
-    Field content = newField("content", "", StringField.TYPE_UNSTORED);
+    Field content = newStringField("content", "", Field.Store.NO);
     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 1348347)
+++ 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 TextField("content", "random text", Field.Store.NO));
+    doc.add(new StringField("id", "1", Field.Store.NO));
     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 TextField("content", "some more random text blob", Field.Store.NO));
+    doc.add(new StringField("id", "2", Field.Store.NO));
     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 TextField("content", "some more random textual data", Field.Store.NO));
+    doc.add(new StringField("id", "3", Field.Store.NO));
     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 TextField("content", "some random text", Field.Store.NO));
+    doc.add(new StringField("id", "4", Field.Store.NO));
     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 TextField("content", "some more random text", Field.Store.NO));
+    doc.add(new StringField("id", "5", Field.Store.NO));
     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 TextField("content", "random blob", Field.Store.NO));
+    doc.add(new StringField("id", "6", Field.Store.NO));
     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 TextField("content", "random word stuck in alot of other text", Field.Store.YES));
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("id", "6", StringField.TYPE_UNSTORED));
+    doc.add(new StringField("id", "6", Field.Store.NO));
     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 StringField(field, value, Field.Store.NO));
     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 StringField("id", String.format("%09d", i), Field.Store.NO));
       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 TextField("content", content, Field.Store.NO));
       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 1348347)
+++ 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 TextField("content", "random text", Field.Store.YES));
     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 TextField("content", "some more random text", Field.Store.YES));
     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 TextField("content", "some more random textual data", Field.Store.YES));
     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 TextField("content", "some random text", Field.Store.YES));
     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 TextField("content", "some more random text", Field.Store.YES));
     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 TextField("content", "random", Field.Store.YES));
     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 TextField("content", "random word stuck in alot of other text", Field.Store.YES));
     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 TextField(groupField, value, Field.Store.YES));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
@@ -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(newStringField("group", groupValue.group.utf8ToString(), Field.Store.NO));
         }
-        doc.add(newField("sort1", groupValue.sort1.utf8ToString(), StringField.TYPE_UNSTORED));
-        doc.add(newField("sort2", groupValue.sort2.utf8ToString(), StringField.TYPE_UNSTORED));
-        doc.add(new IntField("id", groupValue.id));
-        doc.add(newField("content", groupValue.content, TextField.TYPE_UNSTORED));
+        doc.add(newStringField("sort1", groupValue.sort1.utf8ToString(), Field.Store.NO));
+        doc.add(newStringField("sort2", groupValue.sort2.utf8ToString(), Field.Store.NO));
+        doc.add(new IntField("id", groupValue.id, Field.Store.NO));
+        doc.add(newTextField("content", groupValue.content, Field.Store.NO));
         //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:
@@ -712,18 +712,18 @@
         doc.add(idvGroupField);
       }
 
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newStringField("group", "", Field.Store.NO);
       doc.add(group);
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newStringField("sort1", "", Field.Store.NO);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newStringField("sort2", "", Field.Store.NO);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newTextField("content", "", Field.Store.NO);
       doc.add(content);
       docNoGroup.add(content);
-      IntField id = new IntField("id", 0);
+      IntField id = new IntField("id", 0, Field.Store.NO);
       doc.add(id);
       docNoGroup.add(id);
       final GroupDoc[] groupDocs = new GroupDoc[numDocs];
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java	(revision 1348347)
+++ 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 TextField("content", "random text", Field.Store.YES));
     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 TextField("content", "some more random text blob", Field.Store.YES));
     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 TextField("content", "some more random textual data", Field.Store.YES));
     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 TextField("content", "some random text", Field.Store.YES));
     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 TextField("content", "some more random text", Field.Store.YES));
     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 TextField("content", "random blob", Field.Store.YES));
     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 TextField("content", "random word stuck in alot of other text", Field.Store.YES));
     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 TextField(groupField, value, Field.Store.YES));
     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 1348347)
+++ 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 TextField("content", "random text", Field.Store.YES));
     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 TextField("content", "some more random text", Field.Store.YES));
     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 TextField("content", "some more random textual data", Field.Store.YES));
     doc.add(new Field("id", "3", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new StringField("groupend", "x", Field.Store.NO));
     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 TextField("content", "some random text", Field.Store.YES));
     doc.add(new Field("id", "4", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new StringField("groupend", "x", Field.Store.NO));
     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 TextField("content", "some more random text", Field.Store.YES));
     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 TextField("content", "random", Field.Store.YES));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new StringField("groupend", "x", Field.Store.NO));
     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 TextField("content", "random word stuck in alot of other text", Field.Store.YES));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new StringField("groupend", "x", Field.Store.NO));
 
     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 TextField(groupField, value, Field.Store.YES));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
Index: lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(revision 1348347)
+++ lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(working copy)
@@ -18,6 +18,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.TextField;
 import org.apache.lucene.store.Directory;
@@ -37,8 +38,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(newStringField("id", i + "", Field.Store.YES));
+      doc.add(newTextField("f", i + " " + i, Field.Store.YES));
       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 1348347)
+++ lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java	(working copy)
@@ -23,6 +23,7 @@
 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.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -104,15 +105,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(newStringField("id", id, Field.Store.YES));
+    doc.add(newStringField("indexname", indexName, Field.Store.YES));
     sb.append("a");
     sb.append(n);
-    doc.add(newField("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(newTextField("field1", sb.toString(), Field.Store.YES));
     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(newTextField("field" + (i + 1), sb.toString(), Field.Store.YES));
     }
     return doc;
   }
Index: lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(revision 1348347)
+++ lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(working copy)
@@ -22,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -206,9 +207,9 @@
       Document doc = new Document();
       String content = getContent(i);
     
-      doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+      doc.add(newTextField(rnd, "FIELD_1", content, Field.Store.YES));
       //add a different field
-      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE_STORED));
+      doc.add(newTextField(rnd, "different_field", "diff", Field.Store.YES));
       writer.addDocument(doc);
     }
     
@@ -216,7 +217,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(newTextField(rnd, "different_field", "diff", Field.Store.YES));
       writer.addDocument(doc);
     }
     // add some docs where tf < df so we can see if sorting works
@@ -227,7 +228,7 @@
     for (int i = 0; i < highTF; i++) {
       content += "highTF ";
     }
-    doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+    doc.add(newTextField(rnd, "FIELD_1", content, Field.Store.YES));
     writer.addDocument(doc);
     // highTF medium df =5
     int medium_df = 5;
@@ -238,7 +239,7 @@
       for (int j = 0; j < tf; j++) {
         newcontent += "highTFmedDF ";
       }
-      newdoc.add(newField(rnd, "FIELD_1", newcontent, TextField.TYPE_STORED));
+      newdoc.add(newTextField(rnd, "FIELD_1", newcontent, Field.Store.YES));
       writer.addDocument(newdoc);
     }
     // add a doc with high tf in field different_field
@@ -248,7 +249,7 @@
     for (int i = 0; i < targetTF; i++) {
       content += "TF150 ";
     }
-    doc.add(newField(rnd, "different_field", content, TextField.TYPE_STORED));
+    doc.add(newTextField(rnd, "different_field", content, Field.Store.YES));
     writer.addDocument(doc);
     writer.close();
     
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(revision 1348347)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(working copy)
@@ -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 TextField( f, v, Field.Store.YES));
     return doc;
   }
   
@@ -1740,22 +1740,22 @@
       addDoc(writer, text);
     }
     Document doc = new Document();
-    doc.add(new IntField(NUMERIC_FIELD_NAME, 1));
+    doc.add(new IntField(NUMERIC_FIELD_NAME, 1, Field.Store.NO));
     doc.add(new StoredField(NUMERIC_FIELD_NAME, 1));
     writer.addDocument(doc, analyzer);
 
     doc = new Document();
-    doc.add(new IntField(NUMERIC_FIELD_NAME, 3));
+    doc.add(new IntField(NUMERIC_FIELD_NAME, 3, Field.Store.NO));
     doc.add(new StoredField(NUMERIC_FIELD_NAME, 3));
     writer.addDocument(doc, analyzer);
 
     doc = new Document();
-    doc.add(new IntField(NUMERIC_FIELD_NAME, 5));
+    doc.add(new IntField(NUMERIC_FIELD_NAME, 5, Field.Store.NO));
     doc.add(new StoredField(NUMERIC_FIELD_NAME, 5));
     writer.addDocument(doc, analyzer);
 
     doc = new Document();
-    doc.add(new IntField(NUMERIC_FIELD_NAME, 7));
+    doc.add(new IntField(NUMERIC_FIELD_NAME, 7, Field.Store.NO));
     doc.add(new StoredField(NUMERIC_FIELD_NAME, 7));
     writer.addDocument(doc, analyzer);
 
@@ -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 TextField(FIELD_NAME, text, Field.Store.YES);
     d.add(f);
     writer.addDocument(d);
 
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(revision 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(working copy)
@@ -20,6 +20,7 @@
 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.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -69,8 +70,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(newTextField("name", name, Field.Store.YES));
+    doc.add(newTextField("id", id, Field.Store.YES));
     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 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java	(working copy)
@@ -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 = newStringField("field", value, Field.Store.YES);
       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 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java	(working copy)
@@ -22,6 +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.TextField;
 import org.apache.lucene.index.*;
@@ -76,9 +77,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(newStringField(KEY_FIELD, url, Field.Store.YES));
+    doc.add(newTextField("text", text, Field.Store.YES));
+    doc.add(newTextField("date", date, Field.Store.YES));
     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 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.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.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -462,7 +463,7 @@
 
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newTextField("field", text, Field.Store.YES));
     writer.addDocument(doc);
   }
 }
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 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java	(working copy)
@@ -17,6 +17,7 @@
  * limitations under the License.
  */
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.index.IndexReader;
@@ -47,7 +48,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(newTextField(FN, "the quick brown fox jumps over the lazy dog", Field.Store.NO));
     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 1348347)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java	(working copy)
@@ -21,6 +21,7 @@
 
 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.CorruptIndexException;
@@ -65,10 +66,10 @@
     // Field.Store.NO, Field.Index.ANALYZED));
     // writer.addDocument(doc);
     // doc = new Document();
-    doc.add(newField("field", "auto update", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "auto update", Field.Store.NO));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "first auto update", TextField.TYPE_UNSTORED));
+    doc.add(newTextField("field", "first auto update", Field.Store.NO));
     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 1348347)
+++ 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 = newTextField("field", "", Field.Store.NO);
     doc.add(field);
     
     for (int i = 0; i < terms; i++) {
Index: lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java	(revision 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java	(working copy)
@@ -17,9 +17,6 @@
  * limitations under the License.
  */
 
-import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsBoolean;
-import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsInt;
-
 import java.io.*;
 import java.lang.annotation.*;
 import java.lang.reflect.Constructor;
@@ -28,8 +25,11 @@
 import java.util.concurrent.*;
 
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.index.IndexReader.ReaderClosedListener;
 import org.apache.lucene.search.*;
@@ -42,12 +42,14 @@
 import org.junit.rules.RuleChain;
 import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
-
 import com.carrotsearch.randomizedtesting.*;
 import com.carrotsearch.randomizedtesting.annotations.*;
 import com.carrotsearch.randomizedtesting.generators.RandomPicks;
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule;
 
+import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsBoolean;
+import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsInt;
+
 /**
  * Base class for all Lucene unit tests, Junit3 or Junit4 variant.
  * 
@@ -841,6 +843,22 @@
     }
   }
   
+  public static Field newStringField(String name, String value, Store stored) {
+    return newField(random(), name, value, stored == Store.YES ? StringField.TYPE_STORED : StringField.TYPE_UNSTORED);
+  }
+
+  public static Field newTextField(String name, String value, Store stored) {
+    return newField(random(), name, value, stored == Store.YES ? TextField.TYPE_STORED : TextField.TYPE_UNSTORED);
+  }
+  
+  public static Field newStringField(Random random, String name, String value, Store stored) {
+    return newField(random, name, value, stored == Store.YES ? StringField.TYPE_STORED : StringField.TYPE_UNSTORED);
+  }
+  
+  public static Field newTextField(Random random, String name, String value, Store stored) {
+    return newField(random, name, value, stored == Store.YES ? TextField.TYPE_STORED : TextField.TYPE_UNSTORED);
+  }
+  
   public static Field newField(String name, String value, FieldType type) {
     return newField(random(), name, value, type);
   }
Index: lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(revision 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(working copy)
@@ -162,7 +162,7 @@
     public DocState(boolean useDocValues) {
       doc = new Document();
       
-      title = new StringField("title", "");
+      title = new StringField("title", "", Field.Store.NO);
       doc.add(title);
 
       FieldType ft = new FieldType(TextField.TYPE_STORED);
@@ -176,10 +176,10 @@
       body = new Field("body", "", ft);
       doc.add(body);
 
-      id = new Field("docid", "", StringField.TYPE_STORED);
+      id = new StringField("docid", "", Field.Store.YES);
       doc.add(id);
 
-      date = new Field("date", "", StringField.TYPE_STORED);
+      date = new StringField("date", "", Field.Store.YES);
       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 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java	(working copy)
@@ -66,8 +66,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 TextField("content", "\u0633\u0627\u0628", Field.Store.YES));
+    doc.add(new StringField("body", "body", Field.Store.YES));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -103,7 +103,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 TextField("content", "\u0633\u0627\u0628", Field.Store.YES));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -127,8 +127,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 TextField("content", "\u0633\u0627\u0628", Field.Store.YES));
+    doc.add(new StringField("body", "body", Field.Store.YES));
     writer.addDocument(doc);
     writer.close();
 
@@ -195,7 +195,7 @@
     for (int i = 0 ; i < sortData.length ; ++i) {
       Document doc = new Document();
       doc.add(new Field("tracer", sortData[i][0], customType));
-      doc.add(new TextField("contents", sortData[i][1]));
+      doc.add(new TextField("contents", sortData[i][1], Field.Store.NO));
       if (sortData[i][2] != null) 
         doc.add(new TextField("US", usAnalyzer.tokenStream("US", new StringReader(sortData[i][2]))));
       if (sortData[i][3] != null) 
Index: lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java	(revision 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java	(working copy)
@@ -62,8 +62,8 @@
     analyzer = new MockAnalyzer(random, MockTokenizer.WHITESPACE, false, stopset, true);
     RandomIndexWriter iw = new RandomIndexWriter(random, directory, analyzer);
     Document doc = new Document();
-    Field id = new StringField("id", "");
-    Field field = new TextField("field", "");
+    Field id = new StringField("id", "", Field.Store.NO);
+    Field field = new TextField("field", "", Field.Store.NO);
     doc.add(id);
     doc.add(field);
     
Index: lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(revision 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(working copy)
@@ -78,7 +78,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 StringField(KEYWORD_FIELD_KEY, KEYWORD_TEXT, Field.Store.YES);
   }
 
   public static final FieldType customType5;
@@ -115,7 +115,7 @@
 
   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 TextField(UNSTORED_FIELD_1_KEY, UNSTORED_1_FIELD_TEXT, Field.Store.NO);
 
   public static final FieldType customType8;
   public static final String UNSTORED_2_FIELD_TEXT = "unstored field text";
Index: lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(revision 1348347)
+++ lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(working copy)
@@ -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(newTextField(addedField, "a random field", Field.Store.YES));
                 } else {
                   addedField = null;
                 }
@@ -181,7 +181,7 @@
                       packID = packCount.getAndIncrement() + "";
                     }
 
-                    final Field packIDField = newField("packID", packID, StringField.TYPE_STORED);
+                    final Field packIDField = newStringField("packID", packID, Field.Store.YES);
                     final List<String> docIDs = new ArrayList<String>();
                     final SubDocs subDocs = new SubDocs(packID, docIDs);
                     final List<Document> docsList = new ArrayList<Document>();
Index: lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(revision 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(working copy)
@@ -20,6 +20,7 @@
 import java.util.HashSet;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -58,7 +59,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(newStringField(fieldName, "" + term, Field.Store.YES));
       w.addDocument(doc);
     }
     IndexReader reader = new SlowCompositeReaderWrapper(w.getReader());
@@ -92,7 +93,7 @@
     Directory rd1 = newDirectory();
     RandomIndexWriter w1 = new RandomIndexWriter(random(), rd1);
     Document doc = new Document();
-    doc.add(newField(fieldName, "content1", StringField.TYPE_STORED));
+    doc.add(newStringField(fieldName, "content1", Field.Store.YES));
     w1.addDocument(doc);
     IndexReader reader1 = w1.getReader();
     w1.close();
@@ -101,7 +102,7 @@
     Directory rd2 = newDirectory();
     RandomIndexWriter w2 = new RandomIndexWriter(random(), rd2);
     doc = new Document();
-    doc.add(newField(fieldName, "content2", StringField.TYPE_STORED));
+    doc.add(newStringField(fieldName, "content2", Field.Store.YES));
     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 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java	(working copy)
@@ -21,6 +21,7 @@
 import java.util.GregorianCalendar;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -62,9 +63,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(newStringField("key", "" + (i + 1), Field.Store.YES));
+      doc.add(newStringField("owner", (i < MAX / 2) ? "bob" : "sue", Field.Store.YES));
+      doc.add(newStringField("date", cal.getTime().toString(), Field.Store.YES));
       writer.addDocument(doc);
 
       cal.add(Calendar.DATE, 1);
Index: lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(revision 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(working copy)
@@ -20,6 +20,7 @@
 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.index.AtomicReader;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -69,10 +70,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(newTextField("accessRights", accessRights, Field.Store.YES));
+    doc.add(newTextField("price", price, Field.Store.YES));
+    doc.add(newTextField("date", date, Field.Store.YES));
+    doc.add(newTextField("inStock", inStock, Field.Store.YES));
     writer.addDocument(doc);
   }
 
Index: lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java	(revision 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java	(working copy)
@@ -98,23 +98,23 @@
     iwConfig.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConfig);
     Document document = new Document();
-    Field idField = new StringField("id", "");
+    Field idField = new StringField("id", "", Field.Store.NO);
     document.add(idField);
-    Field byteField = new StringField("byte", "");
+    Field byteField = new StringField("byte", "", Field.Store.NO);
     document.add(byteField);
-    Field doubleField = new StringField("double", "");
+    Field doubleField = new StringField("double", "", Field.Store.NO);
     document.add(doubleField);
-    Field floatField = new StringField("float", "");
+    Field floatField = new StringField("float", "", Field.Store.NO);
     document.add(floatField);
-    Field intField = new StringField("int", "");
+    Field intField = new StringField("int", "", Field.Store.NO);
     document.add(intField);
-    Field longField = new StringField("long", "");
+    Field longField = new StringField("long", "", Field.Store.NO);
     document.add(longField);
-    Field shortField = new StringField("short", "");
+    Field shortField = new StringField("short", "", Field.Store.NO);
     document.add(shortField);
-    Field stringField = new StringField("string", "");
+    Field stringField = new StringField("string", "", Field.Store.NO);
     document.add(stringField);
-    Field textField = new TextField("text", "");
+    Field textField = new TextField("text", "", Field.Store.NO);
     document.add(textField);
     
     for (String [] doc : documents) {
Index: lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java	(revision 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java	(working copy)
@@ -56,7 +56,7 @@
     iwConfig.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConfig);
     Document document = new Document();
-    Field idField = new StringField("id", "");
+    Field idField = new StringField("id", "", Field.Store.NO);
     document.add(idField);
     iw.addDocument(document);
     ir = iw.getReader();
Index: lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(revision 1348347)
+++ lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(working copy)
@@ -26,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -65,7 +66,7 @@
   
   private void addDoc(RandomIndexWriter writer, String text) throws IOException {
     Document doc = new Document();
-    doc.add(newField("text", text, TextField.TYPE_STORED));
+    doc.add(newTextField("text", text, Field.Store.YES));
     writer.addDocument(doc);
   }
   
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(revision 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(working copy)
@@ -22,6 +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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -120,8 +121,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(newTextField("name", docsContent[i].name, Field.Store.YES));
+      doc.add(newTextField("id", docsContent[i].id, Field.Store.YES));
       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 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java	(working copy)
@@ -31,6 +31,7 @@
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -1111,7 +1112,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(newTextField("f", "the wizard of ozzy", Field.Store.NO));
     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 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java	(working copy)
@@ -23,6 +23,7 @@
 
 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.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -283,7 +284,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(newTextField("body", "blah the footest blah", Field.Store.NO));
     iw.addDocument(doc);
     iw.close();
     
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/surround/query/SingleFieldTestDb.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/surround/query/SingleFieldTestDb.java	(revision 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/surround/query/SingleFieldTestDb.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.util.Random;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
@@ -44,7 +45,7 @@
           new MockAnalyzer(random)));
       for (int j = 0; j < docs.length; j++) {
         Document d = new Document();
-        d.add(new TextField(fieldName, docs[j]));
+        d.add(new TextField(fieldName, docs[j], Field.Store.NO));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestNumericQueryParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestNumericQueryParser.java	(revision 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestNumericQueryParser.java	(working copy)
@@ -199,7 +199,7 @@
       numericConfigMap.put(type.name(), new NumericConfig(PRECISION_STEP,
           NUMBER_FORMAT, type));
 
-      FieldType ft = new FieldType(IntField.TYPE);
+      FieldType ft = new FieldType(IntField.TYPE_UNSTORED);
       ft.setNumericType(type);
       ft.setStored(true);
       ft.setNumericPrecisionStep(PRECISION_STEP);
@@ -229,7 +229,7 @@
     
     numericConfigMap.put(DATE_FIELD_NAME, new NumericConfig(PRECISION_STEP,
         DATE_FORMAT, NumericType.LONG));
-    FieldType ft = new FieldType(LongField.TYPE);
+    FieldType ft = new FieldType(LongField.TYPE_UNSTORED);
     ft.setStored(true);
     ft.setNumericPrecisionStep(PRECISION_STEP);
     LongField dateField = new LongField(DATE_FIELD_NAME, 0l, ft);
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 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java	(working copy)
@@ -25,6 +25,7 @@
 
 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.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -322,7 +323,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(newTextField("body", "blah the footest blah", Field.Store.NO));
     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 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java	(working copy)
@@ -35,6 +35,7 @@
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -1289,7 +1290,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(newTextField("field", "", Field.Store.NO));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true);
     IndexSearcher s = newSearcher(r);
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(revision 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(working copy)
@@ -19,6 +19,7 @@
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -129,7 +130,7 @@
       String name = st.nextToken().trim();
       if (st.hasMoreTokens()) {
         String value = st.nextToken().trim();
-        result.add(newField(name, value, TextField.TYPE_STORED));
+        result.add(newTextField(name, value, Field.Store.YES));
       }
     }
     return result;
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(revision 1348347)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockTokenFilter;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -69,9 +70,9 @@
       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(new IntField("date2", Integer.valueOf(date)));
+      doc.add(newTextField("date", date, Field.Store.YES));
+      doc.add(newTextField("contents", content, Field.Store.YES));
+      doc.add(new IntField("date2", Integer.valueOf(date), Field.Store.NO));
       writer.addDocument(doc);
       line = d.readLine();
     }
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 1348347)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java	(working copy)
@@ -93,8 +93,8 @@
       // 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 TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
+      doc.add(new TextField(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], Field.Store.YES));
+      doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum], Field.Store.NO));
 
       // invoke the category document builder for adding categories to the
       // document and,
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 1348347)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java	(working copy)
@@ -69,8 +69,8 @@
 
       // 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 TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
+      doc.add(new TextField(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], Field.Store.YES));
+      doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum], Field.Store.NO));
 
       // invoke the category document builder for adding categories to the document and,
       // as required, to the taxonomy index 
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 1348347)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java	(working copy)
@@ -172,8 +172,8 @@
       // 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 TextField(SimpleUtils.TEXT, docTexts[docNum]));
+      doc.add(new TextField(SimpleUtils.TITLE, docTitles[docNum], Field.Store.YES));
+      doc.add(new TextField(SimpleUtils.TEXT, docTexts[docNum], Field.Store.NO));
 
       // finally add the document to the index
       categoryDocBuilder.build(doc);
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(working copy)
@@ -263,7 +263,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 TextField("content", content, Field.Store.YES));
     iw.addDocument(d);
   }
   
Index: lucene/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java	(working copy)
@@ -12,6 +12,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.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -152,7 +153,7 @@
         dts.setIdx(i);
         doc.add(new TextField("f", dts)); // only doc 0 has payloads!
       } else {
-        doc.add(new TextField("f", "1"));
+        doc.add(new TextField("f", "1", Field.Store.NO));
       }
       writer.addDocument(doc);
       writer.commit();
Index: lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java	(working copy)
@@ -6,6 +6,7 @@
 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.index.CorruptIndexException;
 import org.apache.lucene.index.IndexReader;
@@ -81,10 +82,10 @@
       ArrayList<CategoryPath> paths = new ArrayList<CategoryPath>();
       Document doc = new Document();
       if (i % 2 == 0) { // 50
-        doc.add(new TextField("content", "foo"));
+        doc.add(new TextField("content", "foo", Field.Store.NO));
       }
       if (i % 3 == 0) { // 33
-        doc.add(new TextField("content", "bar"));
+        doc.add(new TextField("content", "bar", Field.Store.NO));
       }
       if (i % 4 == 0) { // 25
         paths.add(new CategoryPath("a"));
Index: lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(working copy)
@@ -328,7 +328,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 TextField("content", "alpha", Field.Store.YES));
     iw.addDocument(d);
   }
 
Index: lucene/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java	(working copy)
@@ -189,8 +189,8 @@
     protected final static String delTxt = "delete";
     protected final static String alphaTxt = "alpha";
     
-    private final static Field deletionMark = new StringField(field, delTxt);
-    private final static Field alphaContent = new StringField(field, alphaTxt);
+    private final static Field deletionMark = new StringField(field, delTxt, Field.Store.NO);
+    private final static Field alphaContent = new StringField(field, alphaTxt, Field.Store.NO);
     
     protected final int numDocs;
     
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(revision 1348347)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(working copy)
@@ -129,7 +129,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 TextField("content", "alpha", Field.Store.YES));
     iw.addDocument(d);
   }
 
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 1348347)
+++ lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java	(working copy)
@@ -218,7 +218,7 @@
     FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
     ft.setOmitNorms(true);
     parentStreamField = new Field(Consts.FIELD_PAYLOADS, parentStream, ft);
-    fullPathField = new Field(Consts.FULL, "", StringField.TYPE_STORED);
+    fullPathField = new StringField(Consts.FULL, "", Field.Store.YES);
 
     this.nextID = indexWriter.maxDoc();
 
Index: lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java
===================================================================
--- lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(revision 1348347)
+++ lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(working copy)
@@ -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 StringField("path", file.getPath(), Field.Store.YES);
           doc.add(pathField);
 
           // Add the last modified date of the file a field named "modified".
@@ -184,13 +184,13 @@
           // year/month/day/hour/minutes/seconds, down the resolution you require.
           // For example the long value 2011021714 would mean
           // February 17, 2011, 2-3 PM.
-          doc.add(new LongField("modified", file.lastModified()));
+          doc.add(new LongField("modified", file.lastModified(), Field.Store.NO));
 
           // Add the contents of the file to a field named "contents".  Specify a Reader,
           // so that the text of the file is tokenized and indexed, but not stored.
           // Note that FileReader expects the file to be in UTF-8 encoding.
           // If that's not the case searching for special characters will fail.
-          doc.add(new TextField("contents", new BufferedReader(new InputStreamReader(fis, "UTF-8"))));
+          doc.add(new TextField("contents", new BufferedReader(new InputStreamReader(fis, "UTF-8")), Field.Store.NO));
 
           if (writer.getConfig().getOpenMode() == OpenMode.CREATE) {
             // New index, so we just add the document (no old document can be there):
Index: solr/core/src/test/org/apache/solr/search/TestSort.java
===================================================================
--- solr/core/src/test/org/apache/solr/search/TestSort.java	(revision 1348347)
+++ 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 StringField("f", "0", Field.Store.NO);
+    Field f2 = new StringField("f2", "0", Field.Store.NO);
 
     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 1348347)
+++ solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java	(working copy)
@@ -291,7 +291,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 TextField("title", ALT_DOCS[i], Field.Store.YES));
       iw.addDocument(doc);
     }
     iw.forceMerge(1);
Index: solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
===================================================================
--- solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(revision 1348347)
+++ solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(working copy)
@@ -124,8 +124,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 TextField("id", "2", Field.Store.YES));
+    doc.add(new TextField("name", "name2", Field.Store.YES));
     iw.addDocument(doc);
     iw.commit();
     iw.close();
Index: solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
===================================================================
--- solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(revision 1348347)
+++ solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(working copy)
@@ -461,7 +461,7 @@
 
     @Override
     public void intField(FieldInfo fieldInfo, int value) {
-      FieldType ft = new FieldType(IntField.TYPE);
+      FieldType ft = new FieldType(IntField.TYPE_UNSTORED);
       ft.setStored(true);
       ft.setIndexed(fieldInfo.isIndexed());
       doc.add(new IntField(fieldInfo.name, value, ft));
@@ -469,7 +469,7 @@
 
     @Override
     public void longField(FieldInfo fieldInfo, long value) {
-      FieldType ft = new FieldType(LongField.TYPE);
+      FieldType ft = new FieldType(LongField.TYPE_UNSTORED);
       ft.setStored(true);
       ft.setIndexed(fieldInfo.isIndexed());
       doc.add(new LongField(fieldInfo.name, value, ft));
@@ -477,7 +477,7 @@
 
     @Override
     public void floatField(FieldInfo fieldInfo, float value) {
-      FieldType ft = new FieldType(FloatField.TYPE);
+      FieldType ft = new FieldType(FloatField.TYPE_UNSTORED);
       ft.setStored(true);
       ft.setIndexed(fieldInfo.isIndexed());
       doc.add(new FloatField(fieldInfo.name, value, ft));
@@ -485,7 +485,7 @@
 
     @Override
     public void doubleField(FieldInfo fieldInfo, double value) {
-      FieldType ft = new FieldType(DoubleField.TYPE);
+      FieldType ft = new FieldType(DoubleField.TYPE_UNSTORED);
       ft.setStored(true);
       ft.setIndexed(fieldInfo.isIndexed());
       doc.add(new DoubleField(fieldInfo.name, value, ft));
Index: solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
===================================================================
--- solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java	(revision 1348347)
+++ solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java	(working copy)
@@ -435,7 +435,7 @@
       Sort sort = searcher.weightSort(rb.getSortSpec().getSort());
       SortField[] sortFields = sort==null ? new SortField[]{SortField.FIELD_SCORE} : sort.getSort();
       NamedList<Object[]> sortVals = new NamedList<Object[]>(); // order is important for the sort fields
-      Field field = new StringField("dummy", ""); // a dummy Field
+      Field field = new StringField("dummy", "", Field.Store.NO); // a dummy Field
       IndexReaderContext topReaderContext = searcher.getTopReaderContext();
       AtomicReaderContext[] leaves = topReaderContext.leaves();
       AtomicReaderContext currentLeaf = null;
Index: solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
===================================================================
--- solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java	(revision 1348347)
+++ solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java	(working copy)
@@ -20,6 +20,7 @@
 import java.io.InputStreamReader;
 import java.util.List;
 
+import org.apache.lucene.document.Field;
 import org.apache.lucene.index.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -105,7 +106,7 @@
 
         for (String s : lines) {
           Document d = new Document();
-          d.add(new TextField(WORD_FIELD_NAME, s));
+          d.add(new TextField(WORD_FIELD_NAME, s, Field.Store.NO));
           writer.addDocument(d);
         }
         writer.forceMerge(1);
