You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2017/07/29 22:00:02 UTC

[25/28] lucene-solr:jira/solr-6630: Merging master

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/servlet/DirectSolrConnection.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/servlet/DirectSolrConnection.java b/solr/core/src/java/org/apache/solr/servlet/DirectSolrConnection.java
index 2d3d683..7fecd29 100644
--- a/solr/core/src/java/org/apache/solr/servlet/DirectSolrConnection.java
+++ b/solr/core/src/java/org/apache/solr/servlet/DirectSolrConnection.java
@@ -63,6 +63,7 @@ public class DirectSolrConnection
    * For example:
    * 
    * String json = solr.request( "/select?qt=dismax&wt=json&q=...", null );
+   * String xml = solr.request( "/select?qt=dismax&wt=xml&q=...", null );
    * String xml = solr.request( "/update", "<add><doc><field ..." );
    */
   public String request( String pathAndParams, String body ) throws Exception

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
index 2135fb7..9badb02 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
@@ -63,7 +63,7 @@ public class AtomicUpdateProcessorFactory extends UpdateRequestProcessorFactory
   private final static String VERSION = "_version_";
   public static final String NAME = "atomic";
   public final static String ATOMIC_FIELD_PREFIX = "atomic.";
-  private final static int MAX_ATTEMPTS = 5;
+  private final static int MAX_ATTEMPTS = 25;
 
   private VersionInfo vinfo;
 
@@ -165,7 +165,7 @@ public class AtomicUpdateProcessorFactory extends UpdateRequestProcessorFactory
       try {
         super.processAdd(cmd);
       } catch (SolrException e) {
-        if (attempts++ >= MAX_ATTEMPTS) {//maximum number of attempts allowed: 5
+        if (attempts++ >= MAX_ATTEMPTS) {//maximum number of attempts allowed: 25
           throw new SolrException(SERVER_ERROR,
               "Atomic update failed after multiple attempts due to " + e.getMessage());
         }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
index ff8ff83..15ce878 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
@@ -20,8 +20,6 @@ import java.util.UUID;
 import java.util.Locale;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.solr.common.SolrException;
-import static org.apache.solr.common.SolrException.ErrorCode.*;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
@@ -47,36 +45,55 @@ import org.apache.solr.schema.SchemaField;
  * </processor>
  * </pre>
  *
+ *
  * <p>
- * If field name is omitted in processor configuration,
+ * You can also incoke the processor with request handler param(s)
+ * as <code>uuid.fieldname</code> with <code>processor=uuid</code>
+ *
+ * curl -X POST -H Content-Type: application/json
+ * http://localhost:8983/solr/test/update/json/docs?processor=uuid;ampersand;uuid.fieldName=id;ampersand;commit=true
+ * --data-binary {"id":"1","title": "titleA"}
+ *
+ * NOTE: The param(s) provided in request handler will override / supersede processor's config.
+ *
+ * If field name is omitted in processor configuration and not provided in request handler param(s),
  * then  @{link org.apache.solr.schema.IndexSchema#getUniqueKeyField()}
  * is used as field and a new <code>UUID</code> will be generated
  * and added as the value of that field. The field type of the uniqueKeyField
  * must be anything which accepts a string or UUID value.
+ *
+ *
+ *
  * @see UUID
  */
 public class UUIDUpdateProcessorFactory extends UpdateRequestProcessorFactory {
 
+  private static final String PREFIX_PARAM = "uuid.";
+  public static final String NAME = "uuid";
+  private static final String FIELD_PARAM = "fieldName";
+
+
   protected String fieldName = null;
 
   @SuppressWarnings("unchecked")
   public void init(NamedList args) {
 
-    Object obj = args.remove("fieldName");
+    Object obj = args.remove(FIELD_PARAM);
     if (null != obj) {
       fieldName = obj.toString();
     }
-
-    if (0 < args.size()) {
-      throw new SolrException(SERVER_ERROR,
-          "Unexpected init param(s): '" +
-              args.getName(0) + "'");
-    }
   }
 
   public UpdateRequestProcessor getInstance(SolrQueryRequest req,
                                             SolrQueryResponse rsp,
                                             UpdateRequestProcessor next ) {
+    String fieldName = this.fieldName;
+
+    String fname = req.getParams().get(PREFIX_PARAM+FIELD_PARAM);
+    if (!StringUtils.isEmpty(fname)) {
+      fieldName = fname;
+    }
+
     if (StringUtils.isEmpty(fieldName)) {
       SchemaField schemaField = req.getSchema().getUniqueKeyField();
       fieldName = schemaField.getName();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java b/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
index 6bb212c..bb0c129 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
@@ -321,6 +321,7 @@ public final class UpdateRequestProcessorChain implements PluginInfoInitialized
   public static final Map<String, Class> implicits = new ImmutableMap.Builder()
       .put(TemplateUpdateProcessorFactory.NAME, TemplateUpdateProcessorFactory.class)
       .put(AtomicUpdateProcessorFactory.NAME, AtomicUpdateProcessorFactory.class)
+      .put(UUIDUpdateProcessorFactory.NAME, UUIDUpdateProcessorFactory.class)
       .build();
 
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/LongIterator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/LongIterator.java b/solr/core/src/java/org/apache/solr/util/LongIterator.java
new file mode 100644
index 0000000..654c9a5
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/util/LongIterator.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.util;
+
+/**
+ * A <code>long</code>-based iterator.  This is not <i>is-a</i> {@link java.util.Iterator}
+ * to prevent autoboxing between <code>Long</code> and <code>long</code>.
+ */
+public interface LongIterator {
+    /**
+     * @return <code>true</code> if and only if there are more elements to
+     *         iterate over.  <code>false</code> otherwise.
+     */
+    boolean hasNext();
+
+    /**
+     * @return the next <code>long</code> in the collection.  Only valid after hasNext() has been called and returns true.
+     */
+    long next();
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/LongSet.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/LongSet.java b/solr/core/src/java/org/apache/solr/util/LongSet.java
new file mode 100644
index 0000000..c204992
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/util/LongSet.java
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.util;
+
+
+import java.util.NoSuchElementException;
+
+/** Collects long values in a hash set (closed hashing on power-of-two sized long[])
+ * @lucene.internal
+ */
+public class LongSet {
+
+  private static final float LOAD_FACTOR = 0.7f;
+
+  private long[] vals;
+  private int cardinality;
+  private int mask;
+  private int threshold;
+  private int zeroCount;  // 1 if a 0 was collected
+
+  public LongSet(int sz) {
+    sz = Math.max(org.apache.lucene.util.BitUtil.nextHighestPowerOfTwo(sz), 2);
+    vals = new long[sz];
+    mask = sz - 1;
+    threshold = (int) (sz * LOAD_FACTOR);
+  }
+
+  /** Returns the long[] array that has entries filled in with values or "0" for empty.
+   * To see if "0" itself is in the set, call containsZero()
+   */
+  public long[] getBackingArray() {
+    return vals;
+  }
+
+  public boolean containsZero() {
+    return zeroCount != 0;
+  }
+
+  /** Adds an additional value to the set */
+  public void add(long val) {
+    if (val == 0) {
+      zeroCount = 1;
+      return;
+    }
+    if (cardinality >= threshold) {
+      rehash();
+    }
+
+    // For floats: exponent bits start at bit 23 for single precision,
+    // and bit 52 for double precision.
+    // Many values will only have significant bits just to the right of that.
+
+    // For now, lets just settle to get first 8 significant mantissa bits of double or float in the lowest bits of our hash
+    // The upper bits of our hash will be irrelevant.
+    int h = (int) (val + (val >>> 44) + (val >>> 15));
+    for (int slot = h & mask; ; slot = (slot + 1) & mask) {
+      long v = vals[slot];
+      if (v == 0) {
+        vals[slot] = val;
+        cardinality++;
+        break;
+      } else if (v == val) {
+        // val is already in the set
+        break;
+      }
+    }
+  }
+
+  private void rehash() {
+    long[] oldVals = vals;
+    int newCapacity = vals.length << 1;
+    vals = new long[newCapacity];
+    mask = newCapacity - 1;
+    threshold = (int) (newCapacity * LOAD_FACTOR);
+    cardinality = 0;
+
+    for (long val : oldVals) {
+      if (val != 0) {
+        add(val);
+      }
+    }
+  }
+
+  /** The number of values in the set */
+  public int cardinality() {
+    return cardinality + zeroCount;
+  }
+
+
+  /** Returns an iterator over the values in the set. */
+  public LongIterator iterator() {
+    return new LongIterator() {
+      private int remainingValues = cardinality();
+      private int valsIdx = 0;
+
+      @Override
+      public boolean hasNext() {
+        return remainingValues > 0;
+      }
+
+      @Override
+      public long next() {
+        if (!hasNext()) {
+          throw new NoSuchElementException();
+        }
+        remainingValues--;
+
+        if (remainingValues == 0 && zeroCount > 0) {
+          return 0;
+        }
+
+        while (true) { // guaranteed to find another value if we get here
+          long value = vals[valsIdx++];
+          if (value != 0) {
+            return value;
+          }
+        }
+      }
+
+    };
+  }
+}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/NumberUtils.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/NumberUtils.java b/solr/core/src/java/org/apache/solr/util/NumberUtils.java
index a4e3267..93359bb 100644
--- a/solr/core/src/java/org/apache/solr/util/NumberUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/NumberUtils.java
@@ -198,4 +198,24 @@ public class NumberUtils {
     // TODO: operate directly on BytesRef
     return SortableStr2long(sval.utf8ToString(), offset, len);
   }
+
+  public static byte[] intToBytes(int val) {
+    byte[] result = new byte[4];
+
+    result[0] = (byte) (val >> 24);
+    result[1] = (byte) (val >> 16);
+    result[2] = (byte) (val >> 8);
+    result[3] = (byte) val;
+    return result;
+  }
+
+  public static int bytesToInt(byte[] bytes) {
+    if (bytes == null) return 0;
+    int val = 0;
+    for (int i = 0; i < bytes.length; i++) {
+      val = val << 8;
+      val += bytes[i];
+    }
+    return val;
+  }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/hll/BitVector.java b/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
index 2545e43..6c62b1e 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
@@ -16,6 +16,8 @@
  */
 package org.apache.solr.util.hll;
 
+import org.apache.solr.util.LongIterator;
+
 /**
  * A vector (array) of bits that is accessed in units ("registers") of <code>width</code>
  * bits which are stored as 64bit "words" (<code>long</code>s).  In this context

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/hll/HLL.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/hll/HLL.java b/solr/core/src/java/org/apache/solr/util/hll/HLL.java
index 6bcaee4..26bfa89 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/HLL.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/HLL.java
@@ -22,6 +22,7 @@ import com.carrotsearch.hppc.IntByteHashMap;
 import com.carrotsearch.hppc.LongHashSet;
 import com.carrotsearch.hppc.cursors.IntByteCursor;
 import com.carrotsearch.hppc.cursors.LongCursor;
+import org.apache.solr.util.LongIterator;
 
 /**
  * A probabilistic set of hashed <code>long</code> elements. Useful for computing

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/java/org/apache/solr/util/hll/LongIterator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/hll/LongIterator.java b/solr/core/src/java/org/apache/solr/util/hll/LongIterator.java
deleted file mode 100644
index a584ccc..0000000
--- a/solr/core/src/java/org/apache/solr/util/hll/LongIterator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.util.hll;
-
-/**
- * A <code>long</code>-based iterator.  This is not <i>is-a</i> {@link java.util.Iterator}
- * to prevent autoboxing between <code>Long</code> and <code>long</code>.
- */
-interface LongIterator {
-    /**
-     * @return <code>true</code> if and only if there are more elements to
-     *         iterate over.  <code>false</code> otherwise.
-     */
-    boolean hasNext();
-
-    /**
-     * @return the next <code>long</code> in the collection.
-     */
-    long next();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/resources/SystemCollectionSchema.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/SystemCollectionSchema.xml b/solr/core/src/resources/SystemCollectionSchema.xml
index d491480..0c33022 100644
--- a/solr/core/src/resources/SystemCollectionSchema.xml
+++ b/solr/core/src/resources/SystemCollectionSchema.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" ?>
 <schema name="_system collection or core" version="1.1">
   <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="solr.LongPointField" docValues="true" positionIncrementGap="0"/>
   <fieldType name="bytes" class="solr.BinaryField"/>
-  <fieldType name="date" class="solr.TrieDateField"/>
+  <fieldType name="date" class="solr.DatePointField" docValues="true"/>
   <field name="id"   type="string"   indexed="true"  stored="true"  multiValued="false" required="true"/>
   <field name="md5"   type="string"   indexed="true"  stored="true"  multiValued="false" required="true"/>
   <field name="blob"      type="bytes"   indexed="false" stored="true"  multiValued="false" />

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/analysisconfs/analysis-err-schema.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/analysisconfs/analysis-err-schema.xml b/solr/core/src/test-files/solr/analysisconfs/analysis-err-schema.xml
index eedf4b7..8b9aa0e 100644
--- a/solr/core/src/test-files/solr/analysisconfs/analysis-err-schema.xml
+++ b/solr/core/src/test-files/solr/analysisconfs/analysis-err-schema.xml
@@ -21,7 +21,7 @@
   -->
 
 <schema name="test" version="1.6">
-  <fieldType name="long" class="solr.TrieLongField" stored="true" indexed="true"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" stored="true" indexed="true"/>
   <fieldType name="string" class="solr.StrField" />
   <fieldType name="text" class="solr.TextField">
     <analyzer>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/bad-schema-eff.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/bad-schema-eff.xml b/solr/core/src/test-files/solr/collection1/conf/bad-schema-eff.xml
new file mode 100644
index 0000000..da66281
--- /dev/null
+++ b/solr/core/src/test-files/solr/collection1/conf/bad-schema-eff.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<schema name="example" version="1.6">
+
+
+  <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
+  <field name="eff" type="eff"/>
+
+
+  <!-- Field to use to determine and enforce document uniqueness. 
+       Unless this field is marked with required="false", it will be a required field
+    -->
+  <uniqueKey>id</uniqueKey>
+
+
+  <!-- The StrField type is not analyzed, but indexed/stored verbatim. -->
+  <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
+  
+  <fieldType name="pint" class="solr.IntPointField"/>
+  <field name="keyfield" type="pint" indexed="true" stored="true" docValues="true" multiValued="false"/>
+  
+  <!-- Our external file field type -->
+  <!-- Begin bad stuff: keyfield is points-based -->
+  <fieldType name="eff" class="solr.ExternalFileField" keyField="keyfield"/>
+  <!-- End bad stuff -->
+
+</schema>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-HighlighterMaxOffsetTest.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-HighlighterMaxOffsetTest.xml b/solr/core/src/test-files/solr/collection1/conf/schema-HighlighterMaxOffsetTest.xml
index c447222..6ea70f3 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-HighlighterMaxOffsetTest.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-HighlighterMaxOffsetTest.xml
@@ -40,7 +40,7 @@ Test for HighlighterMaxOffsetTest which requires the use of ReversedWildcardFilt
 
 
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
 
 
   <!-- Just like text_general except it reverses the characters of

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-add-schema-fields-update-processor.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-add-schema-fields-update-processor.xml b/solr/core/src/test-files/solr/collection1/conf/schema-add-schema-fields-update-processor.xml
index febc9ae..6546287 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-add-schema-fields-update-processor.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-add-schema-fields-update-processor.xml
@@ -18,14 +18,14 @@
 
 <schema name="add-schema-fields-update-processor" version="1.6">
 
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
-  <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" multiValued="true" positionIncrementGap="0"/>
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" multiValued="true" positionIncrementGap="0"/>
+  <fieldType name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="6" multiValued="true" positionIncrementGap="0"/>
   <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" multiValued="true"/>
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
   <fieldType name="text" class="solr.TextField" multiValued="true" positionIncrementGap="100">
     <analyzer>
       <tokenizer class="solr.StandardTokenizerFactory"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-behavior.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-behavior.xml b/solr/core/src/test-files/solr/collection1/conf/schema-behavior.xml
index 9a0b6d3..2fb50c7 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-behavior.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-behavior.xml
@@ -26,7 +26,7 @@
   <fieldType name="text" class="solr.TextField"/>
   <fieldType name="bool" class="solr.BoolField"/>
   <fieldType name="str" class="solr.StrField"/>
-  <fieldType name="int" class="solr.TrieIntField"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}"/>
 
   <!-- explicit props on type -->
   <fieldType name="multi_f" class="solr.StrField" multiValued="false"/>
@@ -47,8 +47,8 @@
   <fieldType name="txt_phrase_t" class="solr.TextField"
              autoGeneratePhraseQueries="true"/>
 
-  <fieldType name="int_dvas_t" class="solr.TrieIntField" useDocValuesAsStored="true"/>
-  <fieldType name="int_dvas_f" class="solr.TrieIntField" useDocValuesAsStored="false"/>
+  <fieldType name="int_dvas_t" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" useDocValuesAsStored="true"/>
+  <fieldType name="int_dvas_f" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" useDocValuesAsStored="false"/>
 
   <!-- all behavior is default -->
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-blockjoinfacetcomponent.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-blockjoinfacetcomponent.xml b/solr/core/src/test-files/solr/collection1/conf/schema-blockjoinfacetcomponent.xml
index dc23b84..8db75b6 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-blockjoinfacetcomponent.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-blockjoinfacetcomponent.xml
@@ -17,9 +17,9 @@
   -->
 
 <schema name="test" version="1.0">
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
   <fieldtype name="string" class="solr.StrField" sortMissingLast="true"/>
 
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="false"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-custom-field.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-custom-field.xml b/solr/core/src/test-files/solr/collection1/conf/schema-custom-field.xml
index 23999e4..c8e89a1 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-custom-field.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-custom-field.xml
@@ -17,8 +17,8 @@
 -->
 
 <schema name="test-custom-field-sort" version="1.6">
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
   <fieldType name="text" class="solr.TextField">
     <analyzer>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-customfield.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-customfield.xml b/solr/core/src/test-files/solr/collection1/conf/schema-customfield.xml
index cfb147a..44cea63 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-customfield.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-customfield.xml
@@ -39,12 +39,12 @@
     </analyzer>
   </fieldType>
 
-  <fieldType name="customtrieintfield" class="org.apache.solr.schema.TrieIntPrefixActsAsRangeQueryFieldType"/>
+  <fieldType name="customintfield" class="${solr.tests.CustomIntFieldType}" docValues="${solr.tests.numeric.dv}" />
 
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
   <field name="intfield" type="int" indexed="true" stored="true"/>
   <field name="swap_foo_bar_in_prefix_query" type="customfield" indexed="true" stored="true" multiValued="true"/>
-  <field name="int_prefix_as_range" type="customtrieintfield" indexed="true" stored="true"/>
+  <field name="int_prefix_as_range" type="customintfield" indexed="true" stored="true"/>
 
   <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-enums.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-enums.xml b/solr/core/src/test-files/solr/collection1/conf/schema-enums.xml
index b3a9515..85b4ffa 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-enums.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-enums.xml
@@ -34,6 +34,6 @@
        but you can always add new values to the end. -->
   <fieldType name="severityType" class="solr.EnumField" enumsConfig="enumsConfig.xml" enumName="severity"/>
   <fieldType name="string" class="solr.StrField"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 
 </schema>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-field-sort-values.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-field-sort-values.xml b/solr/core/src/test-files/solr/collection1/conf/schema-field-sort-values.xml
index 3a9cd3b..e6428af 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-field-sort-values.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-field-sort-values.xml
@@ -17,7 +17,6 @@
 -->
 
 <schema name="test-custom-comparator" version="1.6">
-  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
   <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
   <fieldType name="text" class="solr.TextField">
@@ -25,11 +24,12 @@
       <tokenizer class="solr.StandardTokenizerFactory"/>
     </analyzer>
   </fieldType>
-  <fieldType class="org.apache.solr.schema.WrappedIntField" name="wrapped_int"/>
+  <fieldType class="org.apache.solr.schema.WrappedTrieIntField" name="wrapped_trie_int" docValues="${solr.tests.numeric.dv}" />
+  <fieldType class="org.apache.solr.schema.WrappedIntPointField" name="wrapped_point_int" docValues="${solr.tests.numeric.dv}" />
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="false"/>
   <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
   <field name="text" type="text" indexed="true" stored="false"/>
-  <field name="payload" type="wrapped_int" indexed="false"
+  <field name="payload" type="${solr.tests.payload.fieldtype}" indexed="false"
          stored="true" multiValued="false" docValues="true" required="true"/>
 
   <uniqueKey>id</uniqueKey>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-folding.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-folding.xml b/solr/core/src/test-files/solr/collection1/conf/schema-folding.xml
index 5962136..1d20b80 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-folding.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-folding.xml
@@ -216,12 +216,12 @@
   </fieldType>
 
 
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="4" omitNorms="true" positionIncrementGap="0"/>
   <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
-  <fieldType name="date" class="solr.TrieDateField" precisionStep="0"/>
+  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0"/>
 
   <field name="id" type="string" indexed="true" stored="true" required="true"/>
   <field name="int_f" type="int"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-graph.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-graph.xml b/solr/core/src/test-files/solr/collection1/conf/schema-graph.xml
deleted file mode 100644
index a75ce66..0000000
--- a/solr/core/src/test-files/solr/collection1/conf/schema-graph.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-  license agreements. See the NOTICE file distributed with this work for additional 
-  information regarding copyright ownership. The ASF licenses this file to 
-  You under the Apache License, Version 2.0 (the "License"); you may not use 
-  this file except in compliance with the License. You may obtain a copy of 
-  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-  by applicable law or agreed to in writing, software distributed under the 
-  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-  OF ANY KIND, either express or implied. See the License for the specific 
-  language governing permissions and limitations under the License. -->
-
-<!-- This is a stripped down schema that includes the node_id and edge_id 
-  fields to test graph queries -->
-
-<schema name="graphexample" version="1.6">
-  <!-- field names should consist of alphanumeric or underscore characters 
-    only and not start with a digit. This is not currently strictly enforced, 
-    but other field names will not have first class support from all components 
-    and back compatibility is not guaranteed. Names with both leading and trailing 
-    underscores (e.g. _version_) are reserved. -->
-  <!-- unique id for all records in the index. -->
-  <field name="id" type="string" indexed="true" stored="true"
-    required="true" multiValued="false" />
-
-  <!-- If you remove this field, you must _also_ disable the update log in 
-    solrconfig.xml or Solr won't start. _version_ and update log are required 
-    for SolrCloud -->
-  <field name="_version_" type="long" indexed="true" stored="true" />
-
-  <!-- points to the root document of a block of nested documents. Required 
-    for nested document support, may be removed otherwise (not used in graph 
-    query test) -->
-  <field name="_root_" type="string" indexed="true" stored="false" />
-
-  <!-- the field that contains the "node_id" for graph traversal -->
-  <field name="node_id" type="string" indexed="true" stored="true"
-    multiValued="false" omitNorms="true" termVectors="true" />
-  <!-- multi-valued field that contains the edge id's for graph traversal -->
-  <field name="edge_id" type="string" indexed="true" stored="true"
-    multiValued="true" omitNorms="true" omitPositions="true" termVectors="true" />
-
-  <!-- typical title/text fields -->
-  <field name="title" type="text_general" indexed="true" stored="true"
-    multiValued="true" omitNorms="true" omitPositions="true" termVectors="true" />
-  <field name="text" type="text_general" indexed="true" stored="true"
-    multiValued="true" omitNorms="true" omitPositions="true" termVectors="true" />
-
-  <!-- catch all field for indexing unknown fields. -->
-  <dynamicField name="*" type="string" indexed="true"
-    stored="true" multiValued="true" />
-  <!-- call out the explicit doc id. -->
-  <uniqueKey>id</uniqueKey>
-  <!-- Field types -->
-  <fieldType name="string" class="solr.StrField"
-    sortMissingLast="true" />
-  <fieldType name="long" class="solr.TrieLongField"
-    precisionStep="0" positionIncrementGap="0" />
-  <fieldType name="text_general" class="solr.TextField"
-    positionIncrementGap="100">
-    <analyzer type="index">
-      <tokenizer class="solr.StandardTokenizerFactory" />
-      <filter class="solr.LowerCaseFilterFactory" />
-    </analyzer>
-    <analyzer type="query">
-      <tokenizer class="solr.StandardTokenizerFactory" />
-      <filter class="solr.LowerCaseFilterFactory" />
-    </analyzer>
-  </fieldType>
-
-</schema>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-hash.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-hash.xml b/solr/core/src/test-files/solr/collection1/conf/schema-hash.xml
index 5389614..0948835 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-hash.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-hash.xml
@@ -40,17 +40,15 @@
        to create a schema that matches an existing lucene index.
   -->
 
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"
-             docValues="true"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"
-             docValues="true"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" precisionStep="0" omitNorms="true" positionIncrementGap="0" docValues="true"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" precisionStep="0" omitNorms="true" positionIncrementGap="0" docValues="true"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
 
   <!-- numeric field types that manipulate the value into
      a string value that isn't human readable in it's internal form,
@@ -119,8 +117,8 @@
   <!-- format for date is 1995-12-31T23:59:59.999Z and only the fractional
        seconds part (.999) is optional.
     -->
-  <fieldtype name="date" class="solr.TrieDateField" precisionStep="0"/>
-  <fieldtype name="tdate" class="solr.TrieDateField" precisionStep="6"/>
+  <fieldtype name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0"/>
+  <fieldtype name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="6"/>
 
 
   <!-- solr.TextField allows the specification of custom

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-id-and-version-fields-only.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-id-and-version-fields-only.xml b/solr/core/src/test-files/solr/collection1/conf/schema-id-and-version-fields-only.xml
index 96f0866..be38c04 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-id-and-version-fields-only.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-id-and-version-fields-only.xml
@@ -17,7 +17,7 @@
 -->
 
 <schema name="id-and-version-fields-only" version="1.6">
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
   <field name="_version_" type="long" indexed="true" stored="true"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-luceneMatchVersion.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-luceneMatchVersion.xml b/solr/core/src/test-files/solr/collection1/conf/schema-luceneMatchVersion.xml
index 95d6e03..406cfd2 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-luceneMatchVersion.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-luceneMatchVersion.xml
@@ -16,7 +16,7 @@
  limitations under the License.
 -->
 <schema name="luceneMatchVersionTest" version="1.1">
-  <fieldType name="long" class="solr.TrieLongField"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}"/>
   <fieldType name="string" class="solr.StrField"/>
   <fieldType name="text40" class="solr.TextField">
     <analyzer>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-minimal-atomic-stress.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-minimal-atomic-stress.xml b/solr/core/src/test-files/solr/collection1/conf/schema-minimal-atomic-stress.xml
index dffa365..39f0d58 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-minimal-atomic-stress.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-minimal-atomic-stress.xml
@@ -31,7 +31,7 @@
   <field name="long_stored_idx"  type="long" indexed="true" stored="true"  docValues="false" />
 
   <fieldType name="string" class="solr.StrField" multiValued="false" indexed="false" stored="false" docValues="false" />
-  <fieldType name="long" class="solr.TrieLongField" multiValued="false" indexed="false" stored="false" docValues="false"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" multiValued="false" indexed="false" stored="false" docValues="false"/>
 
   <!-- unused, but play nice with existing solrconfig so we don't have to create a new one just for this test -->
   <dynamicField name="*" type="string" indexed="true" stored="true" />

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-multiword-synonyms.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-multiword-synonyms.xml b/solr/core/src/test-files/solr/collection1/conf/schema-multiword-synonyms.xml
index 5544e22..0343142 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-multiword-synonyms.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-multiword-synonyms.xml
@@ -19,7 +19,7 @@
 <schema name="test-multi-word-synonyms" version="1.6">
 
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
   <field name="signatureField" type="string" indexed="true" stored="false"/>
 
   <fieldType name="text" class="solr.TextField" positionIncrementGap="100">

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml b/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml
index 954de42..a343cf8 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml
@@ -28,37 +28,37 @@
 <schema name="test" version="1.0">
   <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
 
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" sortMissingLast="false" omitNorms="true"
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="false" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" sortMissingLast="false" omitNorms="true"
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="false" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" sortMissingLast="false" omitNorms="true"
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="false" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="date" class="solr.TrieDateField" precisionStep="0" sortMissingLast="false" omitNorms="true"
+  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="false" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" sortMissingLast="false" omitNorms="true"
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="false" omitNorms="true"
              positionIncrementGap="0"/>
 
-  <fieldType name="int_last" class="solr.TrieIntField" precisionStep="0" sortMissingLast="true" omitNorms="true"
+  <fieldType name="int_last" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="float_last" class="solr.TrieFloatField" precisionStep="0" sortMissingLast="true" omitNorms="true"
+  <fieldType name="float_last" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="long_last" class="solr.TrieLongField" precisionStep="0" sortMissingLast="true" omitNorms="true"
+  <fieldType name="long_last" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="date_last" class="solr.TrieDateField" precisionStep="0" sortMissingLast="true" omitNorms="true"
+  <fieldType name="date_last" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="double_last" class="solr.TrieDoubleField" precisionStep="0" sortMissingLast="true" omitNorms="true"
+  <fieldType name="double_last" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingLast="true" omitNorms="true"
              positionIncrementGap="0"/>
 
-  <fieldType name="int_first" class="solr.TrieIntField" precisionStep="0" sortMissingFirst="true" omitNorms="true"
+  <fieldType name="int_first" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingFirst="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="float_first" class="solr.TrieFloatField" precisionStep="0" sortMissingFirst="true" omitNorms="true"
+  <fieldType name="float_first" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingFirst="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="long_first" class="solr.TrieLongField" precisionStep="0" sortMissingFirst="true" omitNorms="true"
+  <fieldType name="long_first" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingFirst="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="date_first" class="solr.TrieDateField" precisionStep="0" sortMissingFirst="true" omitNorms="true"
+  <fieldType name="date_first" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingFirst="true" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="double_first" class="solr.TrieDoubleField" precisionStep="0" sortMissingFirst="true" omitNorms="true"
+  <fieldType name="double_first" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" sortMissingFirst="true" omitNorms="true"
              positionIncrementGap="0"/>
 
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-point.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-point.xml b/solr/core/src/test-files/solr/collection1/conf/schema-point.xml
index c024cb6..c933d13 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-point.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-point.xml
@@ -27,26 +27,16 @@
     <fieldType name="pfloat" class="solr.FloatPointField" useDocValuesAsStored="false"/>
     <fieldType name="pdate" class="solr.DatePointField" useDocValuesAsStored="false"/>
     
-    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-    <fieldType name="date" class="solr.TrieDateField" sortMissingLast="true" omitNorms="true"/>
  </types>
 
  <fields>
    <field name="id" type="string"/>
    <field name="text" type="string"/>
-   <field name="_version_" type="long" indexed="true" stored="true" multiValued="false" />
+   <field name="_version_" type="plong" indexed="true" stored="true" multiValued="false" />
    <field name="signatureField" type="string" indexed="true" stored="false"/>
 
    <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
    <dynamicField name="*_sS" type="string"  indexed="false" stored="true"/>
-   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
-   <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
-   <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
-   <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
-   <dynamicField name="*_dt"  type="date" indexed="true"  stored="true"/>
    
    <dynamicField name="*_p_i"  type="pint"    indexed="true"  stored="true"/>
    <dynamicField name="*_p_i_dv"  type="pint"    indexed="true"  stored="true" docValues="true"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-preanalyzed.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-preanalyzed.xml b/solr/core/src/test-files/solr/collection1/conf/schema-preanalyzed.xml
index 8a27392..7de08d6 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-preanalyzed.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-preanalyzed.xml
@@ -30,7 +30,7 @@
     </analyzer>
   </fieldType>
   <fieldType name="string" class="solr.StrField"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 
   <field name="id" type="string" indexed="true" stored="true" required="true"/>
   <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-psuedo-fields.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-psuedo-fields.xml b/solr/core/src/test-files/solr/collection1/conf/schema-psuedo-fields.xml
index 5e048bd..b4e2ecd 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-psuedo-fields.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-psuedo-fields.xml
@@ -37,8 +37,8 @@
   <uniqueKey>id</uniqueKey>
 
   <fieldType name="ignored" class="solr.StrField" indexed="false" stored="false"/>
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
   <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
   <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
              geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers" />

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml b/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml
index 89c2623..5e2ac21 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-rest.xml
@@ -31,15 +31,15 @@
        1.5: omitNorms defaults to true for primitive field types (int, float, boolean, string...)
        1.6: useDocValuesAsStored defaults to true.
      -->
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" positionIncrementGap="0"/>
 
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" positionIncrementGap="0"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" positionIncrementGap="0"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" positionIncrementGap="0"/>
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" positionIncrementGap="0"/>
 
   <!-- Field type demonstrating an Analyzer failure -->
   <fieldType name="failtype1" class="solr.TextField">
@@ -96,8 +96,8 @@
   <!-- format for date is 1995-12-31T23:59:59.999Z and only the fractional
        seconds part (.999) is optional.
     -->
-  <fieldType name="date" class="solr.TrieDateField" sortMissingLast="true"/>
-  <fieldType name="tdate" class="solr.TrieDateField" sortMissingLast="true" precisionStep="6"/>
+  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" sortMissingLast="true"/>
+  <fieldType name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" sortMissingLast="true" precisionStep="6"/>
 
   <fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
     <analyzer type="index">

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-spatial.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-spatial.xml b/solr/core/src/test-files/solr/collection1/conf/schema-spatial.xml
index 6126e26..9b482bd 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-spatial.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-spatial.xml
@@ -18,11 +18,14 @@
 
 <schema name="test" version="1.4">
 
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8"/>
-  <fieldType name="tdoubleDV" class="solr.TrieDoubleField" precisionStep="8" docValues="true"/>
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8"/>
+  
+  <!-- tdouble class can't be randomized, because SpatialPointVectorFieldType requires TrieDoubleField.  See SOLR-11111. -->
+  <fieldType name="tdouble" class="solr.TrieDoubleField" docValues="${solr.tests.numeric.dv}" precisionStep="8"/>
+  
+  <fieldType name="tdoubleDV" class="${solr.tests.DoubleFieldType}" precisionStep="8" docValues="true"/>
 
   <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>
   

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-sql.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-sql.xml b/solr/core/src/test-files/solr/collection1/conf/schema-sql.xml
index e73c9c9..48bd784 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-sql.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-sql.xml
@@ -40,17 +40,17 @@
   -->
 
 
-  <fieldType name="int" docValues="true" class="solr.TrieIntField" precisionStep="0" omitNorms="true"
+  <fieldType name="int" docValues="true" class="${solr.tests.IntegerFieldType}" precisionStep="0" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="float" docValues="true" class="solr.TrieFloatField" precisionStep="0" omitNorms="true"
+  <fieldType name="float" docValues="true" class="${solr.tests.FloatFieldType}" precisionStep="0" omitNorms="true"
              positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
 
   <!-- numeric field types that manipulate the value into
      a string value that isn't human readable in it's internal form,
@@ -119,8 +119,8 @@
   <!-- format for date is 1995-12-31T23:59:59.999Z and only the fractional
        seconds part (.999) is optional.
     -->
-  <fieldtype name="date" class="solr.TrieDateField" precisionStep="0"/>
-  <fieldtype name="tdate" class="solr.TrieDateField" precisionStep="6"/>
+  <fieldtype name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0"/>
+  <fieldtype name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="6"/>
 
 
   <!-- solr.TextField allows the specification of custom

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema-trie.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-trie.xml b/solr/core/src/test-files/solr/collection1/conf/schema-trie.xml
index 525ea51..cc0ff03 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema-trie.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema-trie.xml
@@ -68,24 +68,24 @@
        field first in an ascending sort and last in a descending sort.
   -->
 
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 
-  <fieldType name="tint" class="solr.TrieIntField" omitNorms="true" positionIncrementGap="0" indexed="true"
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" omitNorms="true" positionIncrementGap="0" indexed="true"
              stored="false"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true" positionIncrementGap="0" indexed="true"
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" omitNorms="true" positionIncrementGap="0" indexed="true"
              stored="false"/>
-  <fieldType name="tlong" class="solr.TrieLongField" omitNorms="true" positionIncrementGap="0" indexed="true"
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" omitNorms="true" positionIncrementGap="0" indexed="true"
              stored="false"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" omitNorms="true" positionIncrementGap="0" indexed="true"
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" omitNorms="true" positionIncrementGap="0" indexed="true"
              stored="false"/>
 
-  <fieldType name="tdouble4" class="solr.TrieDoubleField" type="double" precisionStep="4" omitNorms="true"
+  <fieldType name="tdouble4" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="4" omitNorms="true"
              positionIncrementGap="0" indexed="true" stored="false"/>
 
-  <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" positionIncrementGap="0" indexed="true"
+  <fieldType name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" omitNorms="true" positionIncrementGap="0" indexed="true"
              stored="false"/>
 
 
@@ -109,7 +109,7 @@
 
        Consult the TrieDateField javadocs for more information.
     -->
-  <fieldType name="date" class="solr.TrieDateField" sortMissingLast="true" omitNorms="true"/>
+  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" sortMissingLast="true" omitNorms="true"/>
 
 
   <!-- The "RandomSortField" is not used to store or search any

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema11.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema11.xml b/solr/core/src/test-files/solr/collection1/conf/schema11.xml
index 647e1ef..8b317b0 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema11.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema11.xml
@@ -276,7 +276,10 @@
 valued. -->
     <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
 
-    <fieldType name="eff_tfloat" keyField="eff_ti" defVal="0"
+  <!-- eff_tint class can't be randomized, because ExternalFileField disallows point-based keyField.  See SOLR-10846. -->
+  <fieldType name="eff_tint" class="solr.TrieDoubleField" docValues="${solr.tests.numeric.dv}" precisionStep="8"/>
+  <field name="eff_tint" type="eff_tint" indexed="true" stored="true"/>
+  <fieldType name="eff_tfloat" keyField="eff_tint" defVal="0"
                stored="false" indexed="true"
                class="solr.ExternalFileField" />
 
@@ -412,7 +415,16 @@ valued. -->
    <dynamicField name="*_dt_ni_p"   type="pdate"    indexed="false"  stored="true" docValues="true"/>
    <dynamicField name="*_dts_ni_p"   type="pdate"    indexed="false"  stored="true" docValues="true" multiValued="true"/>
 
+   <dynamicField name="*_i_ndv_p"    type="pint"    indexed="true"  stored="true" docValues="false" multiValued="false"/>
    <dynamicField name="*_is_ndv_p"   type="pint"    indexed="true"  stored="true" docValues="false" multiValued="true"/>
+   <dynamicField name="*_l_ndv_p"    type="plong"    indexed="true"  stored="true" docValues="false" multiValued="false"/>
+   <dynamicField name="*_ls_ndv_p"   type="plong"    indexed="true"  stored="true" docValues="false" multiValued="true"/>
+   <dynamicField name="*_f_ndv_p"    type="pfloat"    indexed="true"  stored="true" docValues="false" multiValued="false"/>
+   <dynamicField name="*_fs_ndv_p"   type="pfloat"    indexed="true"  stored="true" docValues="false" multiValued="true"/>
+   <dynamicField name="*_d_ndv_p"    type="pdouble"    indexed="true"  stored="true" docValues="false" multiValued="false"/>
+   <dynamicField name="*_ds_ndv_p"   type="pdouble"    indexed="true"  stored="true" docValues="false" multiValued="true"/>
+   <dynamicField name="*_dt_ndv_p"    type="pdate"    indexed="true"  stored="true" docValues="false" multiValued="false"/>
+   <dynamicField name="*_dts_ndv_p"   type="pdate"    indexed="true"  stored="true" docValues="false" multiValued="true"/>
 
    <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
    <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schema_latest.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema_latest.xml b/solr/core/src/test-files/solr/collection1/conf/schema_latest.xml
index 127b291..1135d20 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema_latest.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema_latest.xml
@@ -240,6 +240,16 @@
   <dynamicField name="*_dtdS" type="date" indexed="true" stored="true" docValues="true"/>
   <dynamicField name="*_dtdsS" type="date" indexed="true" stored="true" multiValued="true" docValues="true"/>
 
+  <!-- explicit points with docValues (since they can't be uninverted with FieldCache -->
+  <dynamicField name="*_ip"      type="pint"    indexed="true"  stored="true" docValues="true" multiValued="false"/>
+  <dynamicField name="*_ips"     type="pint"    indexed="true"  stored="true" docValues="true" multiValued="true"/>
+  <dynamicField name="*_lp"      type="plong"    indexed="true"  stored="true" docValues="true" multiValued="false"/>
+  <dynamicField name="*_lps"     type="plong"    indexed="true"  stored="true" docValues="true" multiValued="true"/>
+  <dynamicField name="*_fp"      type="pfloat"    indexed="true"  stored="true" docValues="true" multiValued="false"/>
+  <dynamicField name="*_fps"     type="pfloat"    indexed="true"  stored="true" docValues="true" multiValued="true"/>
+  <dynamicField name="*_dp"      type="pdouble"    indexed="true"  stored="true" docValues="true" multiValued="false"/>
+  <dynamicField name="*_dps"     type="pdouble"    indexed="true"  stored="true" docValues="true" multiValued="true"/>
+
 
   <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
   <dynamicField name="*_bs" type="boolean" indexed="true" stored="true" multiValued="true"/>
@@ -354,6 +364,13 @@
        field first in an ascending sort and last in a descending sort.
   -->
 
+  <!-- Point Fields -->
+  <fieldType name="pint" class="solr.IntPointField" docValues="true"/>
+  <fieldType name="plong" class="solr.LongPointField" docValues="true"/>
+  <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>
+  <fieldType name="pfloat" class="solr.FloatPointField" docValues="true"/>
+  <fieldType name="pdate" class="solr.DatePointField" docValues="true"/>
+
   <!--
     Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8d00e53b/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml b/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
index c941f6f..49f95a0 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
@@ -33,15 +33,15 @@
        behavior of the fieldType.
     -->
 
-  <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 
-  <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
-  <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tint" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tfloat" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tlong" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
+  <fieldType name="tdouble" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
 
   <!-- Field type demonstrating an Analyzer failure -->
   <fieldType name="failtype1" class="solr.TextField">
@@ -97,8 +97,8 @@
   <!-- format for date is 1995-12-31T23:59:59.999Z and only the fractional
        seconds part (.999) is optional.
     -->
-  <fieldType name="date" class="solr.TrieDateField" sortMissingLast="true"/>
-  <fieldType name="tdate" class="solr.TrieDateField" sortMissingLast="true" precisionStep="6"/>
+  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" sortMissingLast="true"/>
+  <fieldType name="tdate" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" sortMissingLast="true" precisionStep="6"/>
 
   <fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
     <analyzer type="index">