You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2017/06/15 17:59:41 UTC

[2/5] lucene-solr:branch_6x: SOLR-10834: Fixed tests and test configs to stop using numeric uniqueKey fields

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
index d819e64..bbe1e75 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
@@ -152,31 +152,31 @@ public class DocValuesTest extends SolrTestCaseJ4 {
     assertU(adoc("id", "4"));
     assertU(commit());
     assertQ(req("q", "*:*", "sort", "floatdv desc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='2']");
+        "//str[@name='id'][.='2']");
     assertQ(req("q", "*:*", "sort", "intdv desc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='2']");
+        "//str[@name='id'][.='2']");
     assertQ(req("q", "*:*", "sort", "doubledv desc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='1']");
+        "//str[@name='id'][.='1']");
     assertQ(req("q", "*:*", "sort", "longdv desc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='1']");
+        "//str[@name='id'][.='1']");
     assertQ(req("q", "*:*", "sort", "datedv desc", "rows", "1", "fl", "id,datedv"),
-        "//int[@name='id'][.='2']",
+        "//str[@name='id'][.='2']",
         "//result/doc[1]/date[@name='datedv'][.='1997-12-31T23:59:59.999Z']"
         );
     assertQ(req("q", "*:*", "sort", "stringdv desc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='4']");
+        "//str[@name='id'][.='4']");
     assertQ(req("q", "*:*", "sort", "floatdv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='4']");
+        "//str[@name='id'][.='4']");
     assertQ(req("q", "*:*", "sort", "intdv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='3']");
+        "//str[@name='id'][.='3']");
     assertQ(req("q", "*:*", "sort", "doubledv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='3']");
+        "//str[@name='id'][.='3']");
     assertQ(req("q", "*:*", "sort", "longdv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='3']");
+        "//str[@name='id'][.='3']");
     assertQ(req("q", "*:*", "sort", "datedv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='1']");
+        "//str[@name='id'][.='1']");
     assertQ(req("q", "*:*", "sort", "stringdv asc", "rows", "1", "fl", "id"),
-        "//int[@name='id'][.='2']");
+        "//str[@name='id'][.='2']");
     assertQ(req("q", "*:*", "sort", "booldv asc", "rows", "10", "fl", "booldv,stringdv"),
         "//result/doc[1]/bool[@name='booldv'][.='false']",
         "//result/doc[2]/bool[@name='booldv'][.='true']",
@@ -198,13 +198,13 @@ public class DocValuesTest extends SolrTestCaseJ4 {
     assertU(adoc("id", "7", "doubledv", "1.7976931348623157E308"));
     assertU(commit());
     assertQ(req("fl", "id", "q", "*:*", "sort", "doubledv asc"),
-        "//result/doc[1]/int[@name='id'][.='6']",
-        "//result/doc[2]/int[@name='id'][.='5']",
-        "//result/doc[3]/int[@name='id'][.='3']",
-        "//result/doc[4]/int[@name='id'][.='4']",
-        "//result/doc[5]/int[@name='id'][.='1']",
-        "//result/doc[6]/int[@name='id'][.='2']",
-        "//result/doc[7]/int[@name='id'][.='7']"
+        "//result/doc[1]/str[@name='id'][.='6']",
+        "//result/doc[2]/str[@name='id'][.='5']",
+        "//result/doc[3]/str[@name='id'][.='3']",
+        "//result/doc[4]/str[@name='id'][.='4']",
+        "//result/doc[5]/str[@name='id'][.='1']",
+        "//result/doc[6]/str[@name='id'][.='2']",
+        "//result/doc[7]/str[@name='id'][.='7']"
         );
   }
 
@@ -352,156 +352,156 @@ public class DocValuesTest extends SolrTestCaseJ4 {
     assertU(commit());
 
     // string: termquery
-    assertQ(req("q", "stringdv:car", "sort", "id asc"),
+    assertQ(req("q", "stringdv:car", "sort", "id_i asc"),
         "//*[@numFound='1']",
-        "//result/doc[1]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=4]"
     );
     
     // string: range query
-    assertQ(req("q", "stringdv:[b TO d]", "sort", "id asc"),
+    assertQ(req("q", "stringdv:[b TO d]", "sort", "id_i asc"),
         "//*[@numFound='3']",
-        "//result/doc[1]/int[@name='id'][.=1]",
-        "//result/doc[2]/int[@name='id'][.=3]",
-        "//result/doc[3]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=1]",
+        "//result/doc[2]/str[@name='id'][.=3]",
+        "//result/doc[3]/str[@name='id'][.=4]"
     );
     
     // string: prefix query
-    assertQ(req("q", "stringdv:c*", "sort", "id asc"),
+    assertQ(req("q", "stringdv:c*", "sort", "id_i asc"),
         "//*[@numFound='2']",
-        "//result/doc[1]/int[@name='id'][.=3]",
-        "//result/doc[2]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=3]",
+        "//result/doc[2]/str[@name='id'][.=4]"
     );
     
     // string: wildcard query
-    assertQ(req("q", "stringdv:c?r", "sort", "id asc"),
+    assertQ(req("q", "stringdv:c?r", "sort", "id_i asc"),
         "//*[@numFound='1']",
-        "//result/doc[1]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=4]"
     );
     
     // string: regexp query
-    assertQ(req("q", "stringdv:/c[a-b]r/", "sort", "id asc"),
+    assertQ(req("q", "stringdv:/c[a-b]r/", "sort", "id_i asc"),
         "//*[@numFound='1']",
-        "//result/doc[1]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=4]"
     );
     
     // float: termquery
-    assertQ(req("q", "floatdv:3", "sort", "id asc"),
+    assertQ(req("q", "floatdv:3", "sort", "id_i asc"),
         "//*[@numFound='2']",
-        "//result/doc[1]/int[@name='id'][.=3]",
-        "//result/doc[2]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=3]",
+        "//result/doc[2]/str[@name='id'][.=4]"
     );
     
     // float: rangequery
-    assertQ(req("q", "floatdv:[2 TO 3]", "sort", "id asc"),
+    assertQ(req("q", "floatdv:[2 TO 3]", "sort", "id_i asc"),
         "//*[@numFound='3']",
-        "//result/doc[1]/int[@name='id'][.=1]",
-        "//result/doc[2]/int[@name='id'][.=3]",
-        "//result/doc[3]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=1]",
+        "//result/doc[2]/str[@name='id'][.=3]",
+        "//result/doc[3]/str[@name='id'][.=4]"
     );
     
     // (neg) float: termquery
-    assertQ(req("q", "floatdv:\"-5\"", "sort", "id asc"),
+    assertQ(req("q", "floatdv:\"-5\"", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=2]"
             );
 
     // (neg) float: rangequery
-    assertQ(req("q", "floatdv:[-6 TO -4]", "sort", "id asc"),
+    assertQ(req("q", "floatdv:[-6 TO -4]", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=2]"
             );
     
     // (cross zero bounds) float: rangequery
-    assertQ(req("q", "floatdv:[-6 TO 2.1]", "sort", "id asc"),
+    assertQ(req("q", "floatdv:[-6 TO 2.1]", "sort", "id_i asc"),
             "//*[@numFound='2']",
-            "//result/doc[1]/int[@name='id'][.=1]",
-            "//result/doc[2]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=1]",
+            "//result/doc[2]/str[@name='id'][.=2]"
             );
     
     // int: termquery
-    assertQ(req("q", "intdv:1", "sort", "id asc"),
+    assertQ(req("q", "intdv:1", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=3]"
+            "//result/doc[1]/str[@name='id'][.=3]"
             );
     
     // int: rangequery
-    assertQ(req("q", "intdv:[3 TO 4]", "sort", "id asc"),
+    assertQ(req("q", "intdv:[3 TO 4]", "sort", "id_i asc"),
             "//*[@numFound='2']",
-            "//result/doc[1]/int[@name='id'][.=1]",
-            "//result/doc[2]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=1]",
+            "//result/doc[2]/str[@name='id'][.=2]"
             );
     
     // (neg) int: termquery
-    assertQ(req("q", "intdv:\"-1\"", "sort", "id asc"),
+    assertQ(req("q", "intdv:\"-1\"", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=4]"
+            "//result/doc[1]/str[@name='id'][.=4]"
             );
     
     // (neg) int: rangequery
-    assertQ(req("q", "intdv:[-1 TO 1]", "sort", "id asc"),
+    assertQ(req("q", "intdv:[-1 TO 1]", "sort", "id_i asc"),
             "//*[@numFound='2']",
-            "//result/doc[1]/int[@name='id'][.=3]",
-            "//result/doc[2]/int[@name='id'][.=4]"
+            "//result/doc[1]/str[@name='id'][.=3]",
+            "//result/doc[2]/str[@name='id'][.=4]"
             );
 
     // long: termquery
-    assertQ(req("q", "longdv:1", "sort", "id asc"),
+    assertQ(req("q", "longdv:1", "sort", "id_i asc"),
         "//*[@numFound='2']",
-        "//result/doc[1]/int[@name='id'][.=3]",
-        "//result/doc[2]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=3]",
+        "//result/doc[2]/str[@name='id'][.=4]"
     );
     
     // long: rangequery
-    assertQ(req("q", "longdv:[1 TO 2]", "sort", "id asc"),
+    assertQ(req("q", "longdv:[1 TO 2]", "sort", "id_i asc"),
         "//*[@numFound='3']",
-        "//result/doc[1]/int[@name='id'][.=2]",
-        "//result/doc[2]/int[@name='id'][.=3]",
-        "//result/doc[3]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=2]",
+        "//result/doc[2]/str[@name='id'][.=3]",
+        "//result/doc[3]/str[@name='id'][.=4]"
     );
     
     // double: termquery
-    assertQ(req("q", "doubledv:3.1", "sort", "id asc"),
+    assertQ(req("q", "doubledv:3.1", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=1]"
+            "//result/doc[1]/str[@name='id'][.=1]"
             );
     
     // double: rangequery
-    assertQ(req("q", "doubledv:[2 TO 3.3]", "sort", "id asc"),
+    assertQ(req("q", "doubledv:[2 TO 3.3]", "sort", "id_i asc"),
             "//*[@numFound='2']",
-            "//result/doc[1]/int[@name='id'][.=1]",
-            "//result/doc[2]/int[@name='id'][.=3]"
+            "//result/doc[1]/str[@name='id'][.=1]",
+            "//result/doc[2]/str[@name='id'][.=3]"
             );
     
     // (neg) double: termquery
-    assertQ(req("q", "doubledv:\"-4.3\"", "sort", "id asc"),
+    assertQ(req("q", "doubledv:\"-4.3\"", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=2]"
             );
     
     // (neg) double: rangequery
-    assertQ(req("q", "doubledv:[-6 TO -4]", "sort", "id asc"),
+    assertQ(req("q", "doubledv:[-6 TO -4]", "sort", "id_i asc"),
             "//*[@numFound='1']",
-            "//result/doc[1]/int[@name='id'][.=2]"
+            "//result/doc[1]/str[@name='id'][.=2]"
             );
     
     // (cross zero bounds) double: rangequery
-    assertQ(req("q", "doubledv:[-6 TO 2.0]", "sort", "id asc"),
+    assertQ(req("q", "doubledv:[-6 TO 2.0]", "sort", "id_i asc"),
             "//*[@numFound='2']",
-            "//result/doc[1]/int[@name='id'][.=2]",
-            "//result/doc[2]/int[@name='id'][.=4]"
+            "//result/doc[1]/str[@name='id'][.=2]",
+            "//result/doc[2]/str[@name='id'][.=4]"
             );
     // boolean basic queries:
 
-    assertQ(req("q", "booldv:false", "sort", "id asc"),
+    assertQ(req("q", "booldv:false", "sort", "id_i asc"),
         "//*[@numFound='2']",
-        "//result/doc[1]/int[@name='id'][.=1]",
-        "//result/doc[2]/int[@name='id'][.=3]"
+        "//result/doc[1]/str[@name='id'][.=1]",
+        "//result/doc[2]/str[@name='id'][.=3]"
     );
 
-    assertQ(req("q", "booldv:true", "sort", "id asc"),
+    assertQ(req("q", "booldv:true", "sort", "id_i asc"),
         "//*[@numFound='2']",
-        "//result/doc[1]/int[@name='id'][.=2]",
-        "//result/doc[2]/int[@name='id'][.=4]"
+        "//result/doc[1]/str[@name='id'][.=2]",
+        "//result/doc[2]/str[@name='id'][.=4]"
     );
 
   }
@@ -603,7 +603,7 @@ public class DocValuesTest extends SolrTestCaseJ4 {
           if((minInclusive && minSortable<=valSortable || !minInclusive && minSortable<valSortable) &&
               (maxInclusive && maxSortable>=valSortable || !maxInclusive && maxSortable>valSortable)) {
             counter++;
-            tests.add("//result/doc["+counter+"]/int[@name='id'][.="+(k+1)+"]");
+            tests.add("//result/doc["+counter+"]/str[@name='id'][.="+(k+1)+"]");
             tests.add("//result/doc["+counter+"]/float[@name='score'][.=1.0]");
           }
         }
@@ -616,7 +616,7 @@ public class DocValuesTest extends SolrTestCaseJ4 {
         }
         log.info("Expected: "+tests);
         assertQ(req("q", fieldName[i] + ":" + (minInclusive? '[': '{') + min + " TO " + max + (maxInclusive? ']': '}'),
-                         "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+                         "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
             testsArr);
       }
     }
@@ -640,88 +640,88 @@ public class DocValuesTest extends SolrTestCaseJ4 {
       assertU(commit());
 
       // Negative Zero to Positive
-      assertQ(req("q", fieldName[i]+":[-0.0 TO 2.5]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[-0.0 TO 2.5]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='1']",
-          "//result/doc[1]/int[@name='id'][.=1]"
+          "//result/doc[1]/str[@name='id'][.=1]"
           );
 
       // Negative to Positive Zero
-      assertQ(req("q", fieldName[i]+":[-6 TO 0]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[-6 TO 0]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='2']",
-          "//result/doc[1]/int[@name='id'][.=2]",
-          "//result/doc[2]/int[@name='id'][.=5]"
+          "//result/doc[1]/str[@name='id'][.=2]",
+          "//result/doc[2]/str[@name='id'][.=5]"
           );
 
       // Negative to Positive
-      assertQ(req("q", fieldName[i]+":[-6 TO 2.5]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[-6 TO 2.5]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='3']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=2]",
-          "//result/doc[3]/int[@name='id'][.=5]"
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=2]",
+          "//result/doc[3]/str[@name='id'][.=5]"
           );
 
       // Positive to Positive
-      assertQ(req("q", fieldName[i]+":[2 TO 3]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[2 TO 3]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='3']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=3]",
-          "//result/doc[3]/int[@name='id'][.=4]"
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=3]",
+          "//result/doc[3]/str[@name='id'][.=4]"
           );
 
       // Positive to POSITIVE_INF
-      assertQ(req("q", fieldName[i]+":[2 TO *]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[2 TO *]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='4']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=3]",
-          "//result/doc[3]/int[@name='id'][.=4]",
-          "//result/doc[4]/int[@name='id'][.=7]"
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=3]",
+          "//result/doc[3]/str[@name='id'][.=4]",
+          "//result/doc[4]/str[@name='id'][.=7]"
           );
 
       // NEGATIVE_INF to Negative
-      assertQ(req("q", fieldName[i]+":[* TO -1]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[* TO -1]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='2']",
-          "//result/doc[1]/int[@name='id'][.=2]",
-          "//result/doc[2]/int[@name='id'][.=6]"
+          "//result/doc[1]/str[@name='id'][.=2]",
+          "//result/doc[2]/str[@name='id'][.=6]"
           );
 
       // NEGATIVE_INF to Positive
-      assertQ(req("q", fieldName[i]+":[* TO 2]", "sort", "id asc", "fl", "id,"+fieldName[i]),
+      assertQ(req("q", fieldName[i]+":[* TO 2]", "sort", "id_i asc", "fl", "id,"+fieldName[i]),
           "//*[@numFound='4']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=2]",
-          "//result/doc[3]/int[@name='id'][.=5]",
-          "//result/doc[4]/int[@name='id'][.=6]"
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=2]",
+          "//result/doc[3]/str[@name='id'][.=5]",
+          "//result/doc[4]/str[@name='id'][.=6]"
           );
 
       // NEGATIVE_INF to Positive (non-inclusive)
-      assertQ(req("q", fieldName[i]+":[* TO 2}", "sort", "id asc", "fl", "id,"+fieldName[i]),
+      assertQ(req("q", fieldName[i]+":[* TO 2}", "sort", "id_i asc", "fl", "id,"+fieldName[i]),
           "//*[@numFound='3']",
-          "//result/doc[1]/int[@name='id'][.=2]",
-          "//result/doc[2]/int[@name='id'][.=5]",
-          "//result/doc[3]/int[@name='id'][.=6]"
+          "//result/doc[1]/str[@name='id'][.=2]",
+          "//result/doc[2]/str[@name='id'][.=5]",
+          "//result/doc[3]/str[@name='id'][.=6]"
           );
 
       // Negative to POSITIVE_INF
-      assertQ(req("q", fieldName[i]+":[-6 TO *]", "sort", "id asc", "fl", "id,"+fieldName[i]),
+      assertQ(req("q", fieldName[i]+":[-6 TO *]", "sort", "id_i asc", "fl", "id,"+fieldName[i]),
           "//*[@numFound='6']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=2]",
-          "//result/doc[3]/int[@name='id'][.=3]",
-          "//result/doc[4]/int[@name='id'][.=4]",
-          "//result/doc[5]/int[@name='id'][.=5]",
-          "//result/doc[6]/int[@name='id'][.=7]"
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=2]",
+          "//result/doc[3]/str[@name='id'][.=3]",
+          "//result/doc[4]/str[@name='id'][.=4]",
+          "//result/doc[5]/str[@name='id'][.=5]",
+          "//result/doc[6]/str[@name='id'][.=7]"
           );
 
       // NEGATIVE_INF to POSITIVE_INF
-      assertQ(req("q", fieldName[i]+":[* TO *]", "sort", "id asc", "fl", "id,"+fieldName[i]+",score"),
+      assertQ(req("q", fieldName[i]+":[* TO *]", "sort", "id_i asc", "fl", "id,"+fieldName[i]+",score"),
           "//*[@numFound='7']",
-          "//result/doc[1]/int[@name='id'][.=1]",
-          "//result/doc[2]/int[@name='id'][.=2]",
-          "//result/doc[3]/int[@name='id'][.=3]",
-          "//result/doc[4]/int[@name='id'][.=4]",
-          "//result/doc[5]/int[@name='id'][.=5]",
-          "//result/doc[6]/int[@name='id'][.=6]",
-          "//result/doc[7]/int[@name='id'][.=7]",
+          "//result/doc[1]/str[@name='id'][.=1]",
+          "//result/doc[2]/str[@name='id'][.=2]",
+          "//result/doc[3]/str[@name='id'][.=3]",
+          "//result/doc[4]/str[@name='id'][.=4]",
+          "//result/doc[5]/str[@name='id'][.=5]",
+          "//result/doc[6]/str[@name='id'][.=6]",
+          "//result/doc[7]/str[@name='id'][.=7]",
           "//result/doc[1]/float[@name='score'][.=1.0]",
           "//result/doc[2]/float[@name='score'][.=1.0]",
           "//result/doc[3]/float[@name='score'][.=1.0]",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/IndexSchemaRuntimeFieldTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/IndexSchemaRuntimeFieldTest.java b/solr/core/src/test/org/apache/solr/schema/IndexSchemaRuntimeFieldTest.java
index 1a429b2..3237b65 100644
--- a/solr/core/src/test/org/apache/solr/schema/IndexSchemaRuntimeFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/IndexSchemaRuntimeFieldTest.java
@@ -57,14 +57,14 @@ public class IndexSchemaRuntimeFieldTest extends SolrTestCaseJ4 {
 
     assertQ("Make sure they got in", req
             ,"//*[@numFound='1']"
-            ,"//result/doc[1]/int[@name='id'][.='10']"
+            ,"//result/doc[1]/str[@name='id'][.='10']"
             );
 
     // Check to see if our copy field made it out safely
     query.setQuery( "dynamic_runtime:aaa" );
     assertQ("Make sure they got in", req
             ,"//*[@numFound='1']"
-            ,"//result/doc[1]/int[@name='id'][.='10']"
+            ,"//result/doc[1]/str[@name='id'][.='10']"
             );
     clearIndex();
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/IndexSchemaTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/IndexSchemaTest.java b/solr/core/src/test/org/apache/solr/schema/IndexSchemaTest.java
index 44716bb..7790859 100644
--- a/solr/core/src/test/org/apache/solr/schema/IndexSchemaTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/IndexSchemaTest.java
@@ -58,7 +58,7 @@ public class IndexSchemaTest extends SolrTestCaseJ4 {
 
     assertQ("Make sure they got in", req
             ,"//*[@numFound='1']"
-            ,"//result/doc[1]/int[@name='id'][.='10']"
+            ,"//result/doc[1]/str[@name='id'][.='10']"
             );
 
     args = new HashMap<>();
@@ -67,7 +67,7 @@ public class IndexSchemaTest extends SolrTestCaseJ4 {
     req = new LocalSolrQueryRequest( core, new MapSolrParams( args) );
     assertQ("dynamic source", req
             ,"//*[@numFound='1']"
-            ,"//result/doc[1]/int[@name='id'][.='10']"
+            ,"//result/doc[1]/str[@name='id'][.='10']"
             );
 
     args = new HashMap<>();
@@ -76,7 +76,7 @@ public class IndexSchemaTest extends SolrTestCaseJ4 {
     req = new LocalSolrQueryRequest( core, new MapSolrParams( args) );
     assertQ("dynamic destination", req
             ,"//*[@numFound='1']"
-            ,"//result/doc[1]/int[@name='id'][.='10']"
+            ,"//result/doc[1]/str[@name='id'][.='10']"
             );
     clearIndex();
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java b/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
index 9b42749..b3376c8 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
@@ -105,7 +105,7 @@ public class TestBinaryField extends SolrJettyTestBase {
       assertEquals(3, beans.size());
       for (SolrDocument d : res) {
 
-        Integer id = (Integer) d.getFieldValue("id");
+        Integer id = Integer.parseInt(d.getFieldValue("id").toString());
         byte[] data = (byte[]) d.getFieldValue("data");
         if (id == 1) {
           assertEquals(5, data.length);
@@ -133,7 +133,7 @@ public class TestBinaryField extends SolrJettyTestBase {
 
       }
       for (Bean d : beans) {
-        Integer id = d.id;
+        Integer id = Integer.parseInt(d.id);
         byte[] data = d.data;
         if (id == 1) {
           assertEquals(5, data.length);
@@ -165,7 +165,7 @@ public class TestBinaryField extends SolrJettyTestBase {
   }
   public static class Bean{
     @Field
-    int id;
+    String id;
     @Field
     byte [] data;
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
index 6351b82..f33a902 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
@@ -98,8 +98,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
        req("fl", "id", "q", "sort_de:tone", "sort", "id asc" ),
               "//*[@numFound='2']",
-              "//result/doc[1]/int[@name='id'][.=4]",
-              "//result/doc[2]/int[@name='id'][.=7]"
+              "//result/doc[1]/str[@name='id'][.=4]",
+              "//result/doc[2]/str[@name='id'][.=7]"
     );
   }
   
@@ -112,8 +112,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated RangeQ: ",
         req("fl", "id", "q", "sort_de:[tone TO tp]", "sort", "id asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=4]",
-               "//result/doc[2]/int[@name='id'][.=7]"
+               "//result/doc[1]/str[@name='id'][.=4]",
+               "//result/doc[2]/str[@name='id'][.=7]"
      );
   }
   
@@ -124,8 +124,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated Sort: ",
         req("fl", "id", "q", "sort_da:[tz TO töz]", "sort", "sort_da asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=11]",
-               "//result/doc[2]/int[@name='id'][.=4]"
+               "//result/doc[1]/str[@name='id'][.=11]",
+               "//result/doc[2]/str[@name='id'][.=4]"
      );
   }
   
@@ -137,8 +137,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated Sort: ",
         req("fl", "id", "q", "sort_ar:[\u0698 TO \u0633\u0633]", "sort", "sort_ar asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=12]",
-               "//result/doc[2]/int[@name='id'][.=1]"
+               "//result/doc[1]/str[@name='id'][.=12]",
+               "//result/doc[2]/str[@name='id'][.=1]"
      );
   }
 
@@ -161,9 +161,9 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
         req("fl", "id", "q", "sort_tr_canon:\"I Will Use Turkish Casıng\"", "sort", "id asc" ),
                "//*[@numFound='3']",
-               "//result/doc[1]/int[@name='id'][.=2]",
-               "//result/doc[2]/int[@name='id'][.=3]",
-               "//result/doc[3]/int[@name='id'][.=5]"
+               "//result/doc[1]/str[@name='id'][.=2]",
+               "//result/doc[2]/str[@name='id'][.=3]",
+               "//result/doc[3]/str[@name='id'][.=5]"
      );
   }
   
@@ -175,8 +175,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
        req("fl", "id", "q", "sort_zh_full:Testing", "sort", "id asc" ),
               "//*[@numFound='2']",
-              "//result/doc[1]/int[@name='id'][.=6]",
-              "//result/doc[2]/int[@name='id'][.=8]"
+              "//result/doc[1]/str[@name='id'][.=6]",
+              "//result/doc[2]/str[@name='id'][.=8]"
     );
   }
   
@@ -186,10 +186,10 @@ public class TestCollationField extends SolrTestCaseJ4 {
    */
   public void testCustomCollation() {
     assertQ("Collated TQ: ",
-        req("fl", "id", "q", "sort_custom:toene", "sort", "id asc" ),
+        req("fl", "id", "q", "sort_custom:toene" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=4]",
-               "//result/doc[2]/int[@name='id'][.=10]"
+               "//result/doc/str[@name='id'][.=4]",
+               "//result/doc/str[@name='id'][.=10]"
      );
   }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
index 1de339a..c950f67 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
@@ -97,8 +97,8 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
        req("fl", "id", "q", "sort_de:tone", "sort", "id asc" ),
               "//*[@numFound='2']",
-              "//result/doc[1]/int[@name='id'][.=4]",
-              "//result/doc[2]/int[@name='id'][.=7]"
+              "//result/doc[1]/str[@name='id'][.=4]",
+              "//result/doc[2]/str[@name='id'][.=7]"
     );
   }
   
@@ -111,8 +111,8 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated RangeQ: ",
         req("fl", "id", "q", "sort_de:[tone TO tp]", "sort", "id asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=4]",
-               "//result/doc[2]/int[@name='id'][.=7]"
+               "//result/doc[1]/str[@name='id'][.=4]",
+               "//result/doc[2]/str[@name='id'][.=7]"
      );
   }
   
@@ -123,8 +123,8 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated Sort: ",
         req("fl", "id", "q", "sort_da:[tz TO töz]", "sort", "sort_da asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=11]",
-               "//result/doc[2]/int[@name='id'][.=4]"
+               "//result/doc[1]/str[@name='id'][.=11]",
+               "//result/doc[2]/str[@name='id'][.=4]"
      );
   }
   
@@ -136,8 +136,8 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated Sort: ",
         req("fl", "id", "q", "sort_ar:[\u0698 TO \u0633\u0633]", "sort", "sort_ar asc" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=12]",
-               "//result/doc[2]/int[@name='id'][.=1]"
+               "//result/doc[1]/str[@name='id'][.=12]",
+               "//result/doc[2]/str[@name='id'][.=1]"
      );
   }
 
@@ -160,9 +160,9 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
         req("fl", "id", "q", "sort_tr_canon:\"I Will Use Turkish Casıng\"", "sort", "id asc" ),
                "//*[@numFound='3']",
-               "//result/doc[1]/int[@name='id'][.=2]",
-               "//result/doc[2]/int[@name='id'][.=3]",
-               "//result/doc[3]/int[@name='id'][.=5]"
+               "//result/doc[1]/str[@name='id'][.=2]",
+               "//result/doc[2]/str[@name='id'][.=3]",
+               "//result/doc[3]/str[@name='id'][.=5]"
      );
   }
   
@@ -174,8 +174,8 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
     assertQ("Collated TQ: ",
        req("fl", "id", "q", "sort_zh_full:Testing", "sort", "id asc" ),
               "//*[@numFound='2']",
-              "//result/doc[1]/int[@name='id'][.=6]",
-              "//result/doc[2]/int[@name='id'][.=8]"
+              "//result/doc[1]/str[@name='id'][.=6]",
+              "//result/doc[2]/str[@name='id'][.=8]"
     );
   }
   
@@ -185,10 +185,10 @@ public class TestCollationFieldDocValues extends SolrTestCaseJ4 {
    */
   public void testCustomCollation() {
     assertQ("Collated TQ: ",
-        req("fl", "id", "q", "sort_custom:toene", "sort", "id asc" ),
+        req("fl", "id", "q", "sort_custom:toene" ),
                "//*[@numFound='2']",
-               "//result/doc[1]/int[@name='id'][.=4]",
-               "//result/doc[2]/int[@name='id'][.=10]"
+               "//result/doc/str[@name='id'][.=4]",
+               "//result/doc/str[@name='id'][.=10]"
      );
   }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/TestHalfAndHalfDocValues.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestHalfAndHalfDocValues.java b/solr/core/src/test/org/apache/solr/schema/TestHalfAndHalfDocValues.java
index b0c3956..3628558 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestHalfAndHalfDocValues.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestHalfAndHalfDocValues.java
@@ -127,9 +127,9 @@ public class TestHalfAndHalfDocValues extends SolrTestCaseJ4 {
     // Assert sort order is correct
     assertQ(req("q", "string_add_dv_later:*", "sort", "string_add_dv_later asc"),
         "//*[@numFound='3']",
-        "//result/doc[1]/int[@name='id'][.=1]",
-        "//result/doc[2]/int[@name='id'][.=2]",
-        "//result/doc[3]/int[@name='id'][.=3]"
+        "//result/doc[1]/str[@name='id'][.=1]",
+        "//result/doc[2]/str[@name='id'][.=2]",
+        "//result/doc[3]/str[@name='id'][.=3]"
     );
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/schema/TestOmitPositions.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestOmitPositions.java b/solr/core/src/test/org/apache/solr/schema/TestOmitPositions.java
index 19081b9..0fcc9fe 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestOmitPositions.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestOmitPositions.java
@@ -34,8 +34,8 @@ public class TestOmitPositions extends SolrTestCaseJ4 {
     assertQ("term query: ",
        req("fl", "id", "q", "nopositionstext:test"),
               "//*[@numFound='2']",
-              "//result/doc[1]/int[@name='id'][.=2]",
-              "//result/doc[2]/int[@name='id'][.=1]"
+              "//result/doc[1]/str[@name='id'][.=2]",
+              "//result/doc[2]/str[@name='id'][.=1]"
     );
   }
   

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/SpatialFilterTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/SpatialFilterTest.java b/solr/core/src/test/org/apache/solr/search/SpatialFilterTest.java
index 720f9b5..66034c9 100644
--- a/solr/core/src/test/org/apache/solr/search/SpatialFilterTest.java
+++ b/solr/core/src/test/org/apache/solr/search/SpatialFilterTest.java
@@ -142,7 +142,7 @@ public class SpatialFilterTest extends SolrTestCaseJ4 {
     if (docIds != null && docIds.length > 0) {
       int i = 1;
       for (int docId : docIds) {
-        tests[i++] = "//result/doc/int[@name='id'][.='" + docId + "']";
+        tests[i++] = "//result/doc/str[@name='id'][.='" + docId + "']";
       }
     }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
index ef0404c..087c7e1 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
@@ -70,111 +70,111 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_s sort=$sort}");
-    params.add("sort", "test_i asc, test_l desc, id desc");
+    params.add("sort", "test_i asc, test_l desc, id_i desc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='7.0']"
-            ,"//result/doc[2]/float[@name='id'][.='3.0']"
+            ,"//result/doc[1]/str[@name='id'][.='7']"
+            ,"//result/doc[2]/str[@name='id'][.='3']"
             );
     
     // group heads are selected using a complex sort, simpler sort used for final groups
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field=group_s sort='test_i asc, test_l desc, id desc'}");
-    params.add("sort", "id asc");
+    params.add("fq", "{!collapse field=group_s sort='test_i asc, test_l desc, id_i desc'}");
+    params.add("sort", "id_i asc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='3.0']"
-            ,"//result/doc[2]/float[@name='id'][.='7.0']"
+            ,"//result/doc[1]/str[@name='id'][.='3']"
+            ,"//result/doc[2]/str[@name='id'][.='7']"
             );
 
     // diff up the sort directions, only first clause matters with our data
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field=group_s sort='test_i desc, test_l asc, id asc'}");
-    params.add("sort", "id desc");
+    params.add("fq", "{!collapse field=group_s sort='test_i desc, test_l asc, id_i asc'}");
+    params.add("sort", "id_i desc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='8.0']"
-            ,"//result/doc[2]/float[@name='id'][.='4.0']"
+            ,"//result/doc[1]/str[@name='id'][.='8']"
+            ,"//result/doc[2]/str[@name='id'][.='4']"
             );
     
     // tie broken by index order
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_s sort='test_l desc'}");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='6.0']"
-            ,"//result/doc[2]/float[@name='id'][.='2.0']"
+            ,"//result/doc[1]/str[@name='id'][.='6']"
+            ,"//result/doc[2]/str[@name='id'][.='2']"
             );
 
     // score, then tiebreakers; note top level sort by score ASCENDING (just for weirdness)
     params = new ModifiableSolrParams();
     params.add("q", "*:* term_s:YYYY");
-    params.add("fq", "{!collapse field=group_s sort='score desc, test_l desc, test_i asc, id asc'}");
+    params.add("fq", "{!collapse field=group_s sort='score desc, test_l desc, test_i asc, id_i asc'}");
     params.add("sort", "score asc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='2.0']"
-            ,"//result/doc[2]/float[@name='id'][.='5.0']"
+            ,"//result/doc[1]/str[@name='id'][.='2']"
+            ,"//result/doc[2]/str[@name='id'][.='5']"
             );
 
     // score, then tiebreakers; note no score in top level sort/fl to check needsScores logic
     params = new ModifiableSolrParams();
     params.add("q", "*:* term_s:YYYY");
-    params.add("fq", "{!collapse field=group_s sort='score desc, test_l desc, test_i asc, id asc'}");
-    params.add("sort", "id desc");
+    params.add("fq", "{!collapse field=group_s sort='score desc, test_l desc, test_i asc, id_i asc'}");
+    params.add("sort", "id_i desc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='5.0']"
-            ,"//result/doc[2]/float[@name='id'][.='2.0']"
+            ,"//result/doc[1]/str[@name='id'][.='5']"
+            ,"//result/doc[2]/str[@name='id'][.='2']"
             );
     
     // term_s desc -- term_s is missing from many docs, and uses sortMissingLast=true
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_s sort='term_s desc, test_l asc'}");
-    params.add("sort", "id asc");
+    params.add("sort", "id_i asc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='1.0']"
-            ,"//result/doc[2]/float[@name='id'][.='5.0']"
+            ,"//result/doc[1]/str[@name='id'][.='1']"
+            ,"//result/doc[2]/str[@name='id'][.='5']"
             );
 
     // term_s asc -- term_s is missing from many docs, and uses sortMissingLast=true
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_s sort='term_s asc, test_l asc'}");
-    params.add("sort", "id asc");
+    params.add("sort", "id_i asc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='1.0']"
-            ,"//result/doc[2]/float[@name='id'][.='7.0']"
+            ,"//result/doc[1]/str[@name='id'][.='1']"
+            ,"//result/doc[2]/str[@name='id'][.='7']"
             );
 
     // collapse on int field
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=test_i sort='term_s asc, group_s asc'}");
-    params.add("sort", "id asc");
+    params.add("sort", "id_i asc");
     assertQ(req(params)
             , "*[count(//doc)=2]"
-            ,"//result/doc[1]/float[@name='id'][.='4.0']"
-            ,"//result/doc[2]/float[@name='id'][.='7.0']"
+            ,"//result/doc[1]/str[@name='id'][.='4']"
+            ,"//result/doc[2]/str[@name='id'][.='7']"
             );
     
     // collapse on term_s (very sparse) with nullPolicy=collapse
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field=term_s nullPolicy=collapse sort='test_i asc, test_l desc, id asc'}");
-    params.add("sort", "test_l asc, id asc");
+    params.add("fq", "{!collapse field=term_s nullPolicy=collapse sort='test_i asc, test_l desc, id_i asc'}");
+    params.add("sort", "test_l asc, id_i asc");
     assertQ(req(params)
             , "*[count(//doc)=3]"
-            ,"//result/doc[1]/float[@name='id'][.='5.0']"
-            ,"//result/doc[2]/float[@name='id'][.='2.0']"
-            ,"//result/doc[3]/float[@name='id'][.='7.0']"
+            ,"//result/doc[1]/str[@name='id'][.='5']"
+            ,"//result/doc[2]/str[@name='id'][.='2']"
+            ,"//result/doc[3]/str[@name='id'][.='7']"
             );
     
     // sort local param + elevation
@@ -184,11 +184,11 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("sort", "test_l asc");
     params.add("qt", "/elevate");
     params.add("forceElevation", "true");
-    params.add("elevateIds", "4.0");
+    params.add("elevateIds", "4");
     assertQ(req(params),
             "*[count(//doc)=2]",
-            "//result/doc[1]/float[@name='id'][.='4.0']",
-            "//result/doc[2]/float[@name='id'][.='5.0']");
+            "//result/doc[1]/str[@name='id'][.='4']",
+            "//result/doc[2]/str[@name='id'][.='5']");
     //
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
@@ -196,11 +196,11 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("sort", "test_l asc");
     params.add("qt", "/elevate");
     params.add("forceElevation", "true");
-    params.add("elevateIds", "7.0");
+    params.add("elevateIds", "7");
     assertQ(req(params),
             "*[count(//doc)=2]",
-            "//result/doc[1]/float[@name='id'][.='7.0']",
-            "//result/doc[2]/float[@name='id'][.='1.0']");
+            "//result/doc[1]/str[@name='id'][.='7']",
+            "//result/doc[2]/str[@name='id'][.='1']");
 
   }
 
@@ -250,13 +250,13 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_i min=test_f}");
     assertQ(req(params), "*[count(//doc)=1]",
-        "//result/doc[1]/float[@name='id'][.='6.0']");
+        "//result/doc[1]/str[@name='id'][.='6']");
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=group_i max=test_f}");
     assertQ(req(params), "*[count(//doc)=1]",
-        "//result/doc[1]/float[@name='id'][.='2.0']");
+        "//result/doc[1]/str[@name='id'][.='2']");
 
   }
 
@@ -378,8 +378,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("defType", "edismax");
     params.add("bf", "field(test_i)");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=2]",
-                       "//result/doc[1]/float[@name='id'][.='2.0']",
-                       "//result/doc[2]/float[@name='id'][.='6.0']"
+                       "//result/doc[1]/str[@name='id'][.='2']",
+                       "//result/doc[2]/str[@name='id'][.='6']"
         );
 
 
@@ -391,10 +391,10 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("bf", "field(test_i)");
     params.add("sort","");
     assertQ(req(params), "*[count(//doc)=4]",
-        "//result/doc[1]/float[@name='id'][.='3.0']",
-        "//result/doc[2]/float[@name='id'][.='4.0']",
-        "//result/doc[3]/float[@name='id'][.='2.0']",
-        "//result/doc[4]/float[@name='id'][.='6.0']"
+        "//result/doc[1]/str[@name='id'][.='3']",
+        "//result/doc[2]/str[@name='id'][.='4']",
+        "//result/doc[3]/str[@name='id'][.='2']",
+        "//result/doc[4]/str[@name='id'][.='6']"
     );
 
     // Test value source collapse criteria
@@ -403,9 +403,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=field(test_i)"+hint+"}");
     params.add("sort", "test_i desc");
     assertQ(req(params), "*[count(//doc)=3]",
-        "//result/doc[1]/float[@name='id'][.='4.0']",
-        "//result/doc[2]/float[@name='id'][.='1.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']"
+        "//result/doc[1]/str[@name='id'][.='4']",
+        "//result/doc[2]/str[@name='id'][.='1']",
+        "//result/doc[3]/str[@name='id'][.='5']"
     );
 
     // Test value source collapse criteria with cscore function
@@ -415,9 +415,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("defType", "edismax");
     params.add("bf", "field(test_i)");
     assertQ(req(params), "*[count(//doc)=3]",
-        "//result/doc[1]/float[@name='id'][.='4.0']",
-        "//result/doc[2]/float[@name='id'][.='1.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']"
+        "//result/doc[1]/str[@name='id'][.='4']",
+        "//result/doc[2]/str[@name='id'][.='1']",
+        "//result/doc[3]/str[@name='id'][.='5']"
     );
     
     // Test value source collapse criteria with cscore function but no top level score sort
@@ -427,11 +427,11 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("defType", "edismax");
     params.add("bf", "field(test_i)");
     params.add("fl", "id");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params), "*[count(//doc)=3]",
-        "//result/doc[1]/float[@name='id'][.='5.0']",
-        "//result/doc[2]/float[@name='id'][.='4.0']",
-        "//result/doc[3]/float[@name='id'][.='1.0']"
+        "//result/doc[1]/str[@name='id'][.='5']",
+        "//result/doc[2]/str[@name='id'][.='4']",
+        "//result/doc[3]/str[@name='id'][.='1']"
     );
 
     // Test value source collapse criteria with compound cscore function
@@ -441,9 +441,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("defType", "edismax");
     params.add("bf", "field(test_i)");
     assertQ(req(params), "*[count(//doc)=3]",
-        "//result/doc[1]/float[@name='id'][.='4.0']",
-        "//result/doc[2]/float[@name='id'][.='1.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']"
+        "//result/doc[1]/str[@name='id'][.='4']",
+        "//result/doc[2]/str[@name='id'][.='1']",
+        "//result/doc[3]/str[@name='id'][.='5']"
     );
 
     //Test collapse by score with elevation
@@ -456,10 +456,10 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("qf", "term_s");
     params.add("qt", "/elevate");
     assertQ(req(params), "*[count(//doc)=4]",
-                         "//result/doc[1]/float[@name='id'][.='1.0']",
-                         "//result/doc[2]/float[@name='id'][.='2.0']",
-                         "//result/doc[3]/float[@name='id'][.='3.0']",
-                         "//result/doc[4]/float[@name='id'][.='6.0']");
+                         "//result/doc[1]/str[@name='id'][.='1']",
+                         "//result/doc[2]/str[@name='id'][.='2']",
+                         "//result/doc[3]/str[@name='id'][.='3']",
+                         "//result/doc[4]/str[@name='id'][.='6']");
 
     //Test SOLR-5773 with score collapse criteria
     // try both default & sort localparams as alternate ways to ask for max score
@@ -473,9 +473,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params.add("qt", "/elevate");
       params.add("elevateIds", "1,5");
       assertQ(req(params), "*[count(//doc)=3]",
-              "//result/doc[1]/float[@name='id'][.='1.0']",
-              "//result/doc[2]/float[@name='id'][.='5.0']",
-              "//result/doc[3]/float[@name='id'][.='3.0']");
+              "//result/doc[1]/str[@name='id'][.='1']",
+              "//result/doc[2]/str[@name='id'][.='5']",
+              "//result/doc[3]/str[@name='id'][.='3']");
     }
     
     //Test SOLR-5773 with max field collapse criteria
@@ -490,9 +490,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params.add("qt", "/elevate");
       params.add("elevateIds", "1,5");
       assertQ(req(params), "*[count(//doc)=3]",
-              "//result/doc[1]/float[@name='id'][.='1.0']",
-              "//result/doc[2]/float[@name='id'][.='5.0']",
-              "//result/doc[3]/float[@name='id'][.='3.0']");
+              "//result/doc[1]/str[@name='id'][.='1']",
+              "//result/doc[2]/str[@name='id'][.='5']",
+              "//result/doc[3]/str[@name='id'][.='3']");
     }
     
     //Test SOLR-5773 with min field collapse criteria
@@ -507,9 +507,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params.add("qt", "/elevate");
       params.add("elevateIds", "1,5");
       assertQ(req(params), "*[count(//doc)=3]",
-              "//result/doc[1]/float[@name='id'][.='1.0']",
-              "//result/doc[2]/float[@name='id'][.='5.0']",
-              "//result/doc[3]/float[@name='id'][.='4.0']");
+              "//result/doc[1]/str[@name='id'][.='1']",
+              "//result/doc[2]/str[@name='id'][.='5']",
+              "//result/doc[3]/str[@name='id'][.='4']");
     }
     
     //Test SOLR-5773 elevating documents with null group
@@ -522,33 +522,33 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("qt", "/elevate");
     params.add("elevateIds", "3,4");
     assertQ(req(params), "*[count(//doc)=4]",
-        "//result/doc[1]/float[@name='id'][.='3.0']",
-        "//result/doc[2]/float[@name='id'][.='4.0']",
-        "//result/doc[3]/float[@name='id'][.='2.0']",
-        "//result/doc[4]/float[@name='id'][.='6.0']");
+        "//result/doc[1]/str[@name='id'][.='3']",
+        "//result/doc[2]/str[@name='id'][.='4']",
+        "//result/doc[3]/str[@name='id'][.='2']",
+        "//result/doc[4]/str[@name='id'][.='6']");
 
 
     // Non trivial sort local param for picking group head
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field="+group+" nullPolicy=collapse sort='term_s asc, test_i asc' "+hint+"}");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params),
             "*[count(//doc)=3]",
-            "//result/doc[1]/float[@name='id'][.='5.0']",
-            "//result/doc[2]/float[@name='id'][.='4.0']",
-            "//result/doc[3]/float[@name='id'][.='1.0']"
+            "//result/doc[1]/str[@name='id'][.='5']",
+            "//result/doc[2]/str[@name='id'][.='4']",
+            "//result/doc[3]/str[@name='id'][.='1']"
     );
     // 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field="+group+" nullPolicy=collapse sort='term_s asc, test_i desc' "+hint+"}");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params),
             "*[count(//doc)=3]",
-            "//result/doc[1]/float[@name='id'][.='6.0']",
-            "//result/doc[2]/float[@name='id'][.='3.0']",
-            "//result/doc[3]/float[@name='id'][.='2.0']"
+            "//result/doc[1]/str[@name='id'][.='6']",
+            "//result/doc[2]/str[@name='id'][.='3']",
+            "//result/doc[3]/str[@name='id'][.='2']"
     );
     
 
@@ -559,40 +559,40 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params = new ModifiableSolrParams();
       params.add("q", "*:*");
       params.add("fq", "{!collapse field="+group + min + hint+"}");
-      params.add("sort", "id desc");
+      params.add("sort", "id_i desc");
       assertQ(req(params),
               "*[count(//doc)=2]",
-              "//result/doc[1]/float[@name='id'][.='5.0']",
-              "//result/doc[2]/float[@name='id'][.='1.0']");
+              "//result/doc[1]/str[@name='id'][.='5']",
+              "//result/doc[2]/str[@name='id'][.='1']");
 
       params = new ModifiableSolrParams();
       params.add("q", "*:*");
       params.add("fq", "{!collapse field="+group + min + hint+"}");
-      params.add("sort", "id asc");
+      params.add("sort", "id_i asc");
       assertQ(req(params),
               "*[count(//doc)=2]",
-              "//result/doc[1]/float[@name='id'][.='1.0']",
-              "//result/doc[2]/float[@name='id'][.='5.0']");
+              "//result/doc[1]/str[@name='id'][.='1']",
+              "//result/doc[2]/str[@name='id'][.='5']");
       
       params = new ModifiableSolrParams();
       params.add("q", "*:*");
       params.add("fq", "{!collapse field="+group + min + hint+"}");
-      params.add("sort", "test_l asc,id desc");
+      params.add("sort", "test_l asc,id_i desc");
       assertQ(req(params),
               "*[count(//doc)=2]",
-              "//result/doc[1]/float[@name='id'][.='5.0']",
-              "//result/doc[2]/float[@name='id'][.='1.0']");
+              "//result/doc[1]/str[@name='id'][.='5']",
+              "//result/doc[2]/str[@name='id'][.='1']");
 
       params = new ModifiableSolrParams();
       params.add("q", "*:*");
       params.add("fq", "{!collapse field="+group + min + hint+"}");
-      params.add("sort", "score desc,id asc");
+      params.add("sort", "score desc,id_i asc");
       params.add("defType", "edismax");
-      params.add("bf", "field(id)");
+      params.add("bf", "field(id_i)");
       assertQ(req(params),
               "*[count(//doc)=2]",
-              "//result/doc[1]/float[@name='id'][.='5.0']",
-              "//result/doc[2]/float[@name='id'][.='1.0']");
+              "//result/doc[1]/str[@name='id'][.='5']",
+              "//result/doc[2]/str[@name='id'][.='1']");
     }
 
 
@@ -602,8 +602,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("fq", "{!collapse field="+group+" max=test_i"+hint+"}");
     params.add("sort", "test_i asc");
     assertQ(req(params), "*[count(//doc)=2]",
-                         "//result/doc[1]/float[@name='id'][.='6.0']",
-                         "//result/doc[2]/float[@name='id'][.='2.0']"
+                         "//result/doc[1]/str[@name='id'][.='6']",
+                         "//result/doc[2]/str[@name='id'][.='2']"
         );
 
     try {
@@ -613,8 +613,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params.add("fq", "{!collapse field="+group+" min=test_l"+hint+"}");
       params.add("sort", "test_i desc");
       assertQ(req(params), "*[count(//doc)=2]",
-          "//result/doc[1]/float[@name='id'][.='1.0']",
-          "//result/doc[2]/float[@name='id'][.='5.0']");
+          "//result/doc[1]/str[@name='id'][.='1']",
+          "//result/doc[2]/str[@name='id'][.='5']");
 
 
       //Test collapse by max long field
@@ -623,8 +623,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       params.add("fq", "{!collapse field="+group+" max=test_l"+hint+"}");
       params.add("sort", "test_i desc");
       assertQ(req(params), "*[count(//doc)=2]",
-                           "//result/doc[1]/float[@name='id'][.='2.0']",
-                           "//result/doc[2]/float[@name='id'][.='6.0']");
+                           "//result/doc[1]/str[@name='id'][.='2']",
+                           "//result/doc[2]/str[@name='id'][.='6']");
     } catch (Exception e) {
       if(!numeric) {
         throw e;
@@ -638,8 +638,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("fq", "{!collapse field="+group+" min=test_f"+hint+"}");
     params.add("sort", "test_i desc");
     assertQ(req(params), "*[count(//doc)=2]",
-                         "//result/doc[1]/float[@name='id'][.='2.0']",
-                         "//result/doc[2]/float[@name='id'][.='6.0']");
+                         "//result/doc[1]/str[@name='id'][.='2']",
+                         "//result/doc[2]/str[@name='id'][.='6']");
 
     //Test collapse by min float field
     params = new ModifiableSolrParams();
@@ -647,23 +647,23 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("fq", "{!collapse field="+group+" max=test_f"+hint+"}");
     params.add("sort", "test_i asc");
     assertQ(req(params), "*[count(//doc)=2]",
-                         "//result/doc[1]/float[@name='id'][.='5.0']",
-                         "//result/doc[2]/float[@name='id'][.='1.0']");
+                         "//result/doc[1]/str[@name='id'][.='5']",
+                         "//result/doc[2]/str[@name='id'][.='1']");
 
     //Test collapse by min float field sort by score
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field="+group+" max=test_f"+hint+"}");
     params.add("defType", "edismax");
-    params.add("bf", "field(id)");
+    params.add("bf", "field(id_i)");
     params.add("fl", "score, id");
     params.add("facet","true");
     params.add("fq", "{!tag=test}term_s:YYYY");
     params.add("facet.field", "{!ex=test}term_s");
 
     assertQ(req(params), "*[count(//doc)=2]",
-        "//result/doc[1]/float[@name='id'][.='5.0']",
-        "//result/doc[2]/float[@name='id'][.='1.0']");
+        "//result/doc[1]/str[@name='id'][.='5']",
+        "//result/doc[2]/str[@name='id'][.='1']");
     
     // Test collapse using selector field in no docs
     // tie selector in all of these cases
@@ -690,8 +690,8 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     
     // attempting to use cscore() in sort local param should fail
     assertQEx("expected error trying to sort on a function that includes cscore()",
-              req(params("q", "{!func}sub(sub(test_l,1000),id)",
-                         "fq", "{!collapse field="+group+" sort='abs(cscore()) asc, id asc'}",
+              req(params("q", "{!func}sub(sub(test_l,1000),id_i)",
+                         "fq", "{!collapse field="+group+" sort='abs(cscore()) asc, id_i asc'}",
                          "sort", "score asc")),
               SolrException.ErrorCode.BAD_REQUEST);
     
@@ -718,9 +718,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
       
       assertQ(req(collapse, "q", "*:*", "sort", "test_i desc"),
               "*[count(//doc)=3]",
-              "//result/doc[1]/float[@name='id'][.='4.0']",
-              "//result/doc[2]/float[@name='id'][.='1.0']",
-              "//result/doc[3]/float[@name='id'][.='5.0']");
+              "//result/doc[1]/str[@name='id'][.='4']",
+              "//result/doc[2]/str[@name='id'][.='1']",
+              "//result/doc[3]/str[@name='id'][.='5']");
     }
     
 
@@ -728,22 +728,22 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field="+group+" max=test_f nullPolicy=expand"+hint+"}");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params), "*[count(//doc)=4]",
-        "//result/doc[1]/float[@name='id'][.='5.0']",
-        "//result/doc[2]/float[@name='id'][.='4.0']",
-        "//result/doc[3]/float[@name='id'][.='3.0']",
-        "//result/doc[4]/float[@name='id'][.='1.0']");
+        "//result/doc[1]/str[@name='id'][.='5']",
+        "//result/doc[2]/str[@name='id'][.='4']",
+        "//result/doc[3]/str[@name='id'][.='3']",
+        "//result/doc[4]/str[@name='id'][.='1']");
 
     //Test nullPolicy collapse
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field="+group+" max=test_f nullPolicy=collapse"+hint+"}");
-    params.add("sort", "id desc");
+    params.add("sort", "id_i desc");
     assertQ(req(params), "*[count(//doc)=3]",
-        "//result/doc[1]/float[@name='id'][.='5.0']",
-        "//result/doc[2]/float[@name='id'][.='4.0']",
-        "//result/doc[3]/float[@name='id'][.='1.0']");
+        "//result/doc[1]/str[@name='id'][.='5']",
+        "//result/doc[2]/str[@name='id'][.='4']",
+        "//result/doc[3]/str[@name='id'][.='1']");
 
 
     params = new ModifiableSolrParams();
@@ -778,9 +778,9 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     params.add("qf", "term_s");
     params.add("qt", "/elevate");
     assertQ(req(params), "*[count(//doc)=3]",
-                         "//result/doc[1]/float[@name='id'][.='3.0']",
-                         "//result/doc[2]/float[@name='id'][.='6.0']",
-                         "//result/doc[3]/float[@name='id'][.='7.0']");
+                         "//result/doc[1]/str[@name='id'][.='3']",
+                         "//result/doc[2]/str[@name='id'][.='6']",
+                         "//result/doc[3]/str[@name='id'][.='7']");
 
 
   }
@@ -850,25 +850,25 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
         // w/default nullPolicy, no groups found
         params = new ModifiableSolrParams();
         params.add("q", "*:*");
-        params.add("sort", "id desc");
+        params.add("sort", "id_i desc");
         params.add("fq", "{!collapse "+group+" "+selector+"}");
         assertQ(req(params), "*[count(//doc)=0]");
 
         // w/nullPolicy=expand, every doc found
         params = new ModifiableSolrParams();
         params.add("q", "*:*");
-        params.add("sort", "id desc");
+        params.add("sort", "id_i desc");
         params.add("fq", "{!collapse field="+group+" nullPolicy=expand "+selector+"}");
         assertQ(req(params)
                 , "*[count(//doc)=8]"
-                ,"//result/doc[1]/float[@name='id'][.='8.0']"
-                ,"//result/doc[2]/float[@name='id'][.='7.0']"
-                ,"//result/doc[3]/float[@name='id'][.='6.0']"
-                ,"//result/doc[4]/float[@name='id'][.='5.0']"
-                ,"//result/doc[5]/float[@name='id'][.='4.0']"
-                ,"//result/doc[6]/float[@name='id'][.='3.0']"
-                ,"//result/doc[7]/float[@name='id'][.='2.0']"
-                ,"//result/doc[8]/float[@name='id'][.='1.0']"
+                ,"//result/doc[1]/str[@name='id'][.='8']"
+                ,"//result/doc[2]/str[@name='id'][.='7']"
+                ,"//result/doc[3]/str[@name='id'][.='6']"
+                ,"//result/doc[4]/str[@name='id'][.='5']"
+                ,"//result/doc[5]/str[@name='id'][.='4']"
+                ,"//result/doc[6]/str[@name='id'][.='3']"
+                ,"//result/doc[7]/str[@name='id'][.='2']"
+                ,"//result/doc[8]/str[@name='id'][.='1']"
                 );
 
         

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestComplexPhraseLeadingWildcard.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestComplexPhraseLeadingWildcard.java b/solr/core/src/test/org/apache/solr/search/TestComplexPhraseLeadingWildcard.java
index 6c48cc3..ffccaca 100644
--- a/solr/core/src/test/org/apache/solr/search/TestComplexPhraseLeadingWildcard.java
+++ b/solr/core/src/test/org/apache/solr/search/TestComplexPhraseLeadingWildcard.java
@@ -106,7 +106,7 @@ public class TestComplexPhraseLeadingWildcard extends SolrTestCaseJ4 {
     xpathes[0]= "//result[@numFound=" +ids.length+ "]";
     int i=1;
     for(String id : ids) {
-      xpathes[i++] = "//doc/int[@name='id' and text()='"+id+"']";
+      xpathes[i++] = "//doc/str[@name='id' and text()='"+id+"']";
     }
     return xpathes;
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestCustomSort.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestCustomSort.java b/solr/core/src/test/org/apache/solr/search/TestCustomSort.java
index ca33ea0..74b8301 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCustomSort.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCustomSort.java
@@ -49,7 +49,7 @@ public class TestCustomSort extends SolrTestCaseJ4 {
     assertU(adoc(sdoc("id", "13", "text", "d", "payload", ByteBuffer.wrap(new byte[] { (byte)0x80, 0x11, 0x33 }))));             // 12
     assertU(commit());
     
-    assertQ(req("q", "*:*", "fl", "id", "sort", "payload asc", "rows", "20")
+    assertQ(req("q", "*:*", "fl", "id_i", "sort", "payload asc", "rows", "20")
         , "//result[@numFound='13']"                   // <result name="response" numFound="13" start="0">
         , "//result/doc[int='7'  and position()=1]"    //   <doc><int name="id">7</int></doc>   00 3c 73
         , "//result/doc[int='1'  and position()=2]"    //   <doc><int name="id">1</int></doc>   12 62 15
@@ -64,7 +64,7 @@ public class TestCustomSort extends SolrTestCaseJ4 {
         , "//result/doc[int='8'  and position()=11]"   //   <doc><int name="id">8</int></doc>   59 2d 4d      
         , "//result/doc[int='13' and position()=12]"   //   <doc><int name="id">13</int></doc>  80 11 33       
         , "//result/doc[int='11' and position()=13]"); //   <doc><int name="id">11</int></doc>  ff af 9c
-    assertQ(req("q", "*:*", "fl", "id", "sort", "payload desc", "rows", "20")
+    assertQ(req("q", "*:*", "fl", "id_i", "sort", "payload desc", "rows", "20")
         , "//result[@numFound='13']"                   // <result name="response" numFound="13" start="0">
         , "//result/doc[int='11' and position()=1]"    //   <doc><int name="id">11</int></doc>  ff af 9c            
         , "//result/doc[int='13' and position()=2]"    //   <doc><int name="id">13</int></doc>  80 11 33                   
@@ -79,44 +79,44 @@ public class TestCustomSort extends SolrTestCaseJ4 {
         , "//result/doc[int='6'  and position()=11]"   //   <doc><int name="id">6</int></doc>   1a 2b 3c 00 00 03   
         , "//result/doc[int='1'  and position()=12]"   //   <doc><int name="id">1</int></doc>   12 62 15            
         , "//result/doc[int='7'  and position()=13]"); //   <doc><int name="id">7</int></doc>   00 3c 73            
-    assertQ(req("q", "text:a", "fl", "id", "sort", "payload asc", "rows", "20")
+    assertQ(req("q", "text:a", "fl", "id_i", "sort", "payload asc", "rows", "20")
         , "//result[@numFound='4']"                    // <result name="response" numFound="4" start="0">
         , "//result/doc[int='1'  and position()=1]"    //   <doc><int name="id">1</int></doc>   12 62 15    
         , "//result/doc[int='3'  and position()=2]"    //   <doc><int name="id">3</int></doc>   35 32 58    
         , "//result/doc[int='5'  and position()=3]"    //   <doc><int name="id">5</int></doc>   35 35 10 00 
         , "//result/doc[int='9'  and position()=4]");  //   <doc><int name="id">9</int></doc>   39 79 7a    
-    assertQ(req("q", "text:a", "fl", "id", "sort", "payload desc", "rows", "20")
+    assertQ(req("q", "text:a", "fl", "id_i", "sort", "payload desc", "rows", "20")
         , "//result[@numFound='4']"                    // <result name="response" numFound="4" start="0">
         , "//result/doc[int='9'  and position()=1]"    //   <doc><int name="id">9</int></doc>   39 79 7a    
         , "//result/doc[int='5'  and position()=2]"    //   <doc><int name="id">5</int></doc>   35 35 10 00 
         , "//result/doc[int='3'  and position()=3]"    //   <doc><int name="id">3</int></doc>   35 32 58    
         , "//result/doc[int='1'  and position()=4]");  //   <doc><int name="id">1</int></doc>   12 62 15    
-    assertQ(req("q", "text:b", "fl", "id", "sort", "payload asc", "rows", "20")
+    assertQ(req("q", "text:b", "fl", "id_i", "sort", "payload asc", "rows", "20")
         , "//result[@numFound='3']"                    // <result name="response" numFound="3" start="0">
         , "//result/doc[int='4'  and position()=1]"    //   <doc><int name="id">4</int></doc>   25 21 15
         , "//result/doc[int='2'  and position()=2]"    //   <doc><int name="id">2</int></doc>   25 21 16
         , "//result/doc[int='10' and position()=3]");  //   <doc><int name="id">10</int></doc>  31 39 7c
-    assertQ(req("q", "text:b", "fl", "id", "sort", "payload desc", "rows", "20")
+    assertQ(req("q", "text:b", "fl", "id_i", "sort", "payload desc", "rows", "20")
         , "//result[@numFound='3']"                    // <result name="response" numFound="3" start="0">
         , "//result/doc[int='10' and position()=1]"    //   <doc><int name="id">10</int></doc>  31 39 7c
         , "//result/doc[int='2'  and position()=2]"    //   <doc><int name="id">2</int></doc>   25 21 16
         , "//result/doc[int='4'  and position()=3]");  //   <doc><int name="id">4</int></doc>   25 21 15
-    assertQ(req("q", "text:c", "fl", "id", "sort", "payload asc", "rows", "20")
+    assertQ(req("q", "text:c", "fl", "id_i", "sort", "payload asc", "rows", "20")
         , "//result[@numFound='3']"                   // <result name="response" numFound="3" start="0">
         , "//result/doc[int='7'  and position()=1]"   //   <doc><int name="id">7</int></doc>    00 3c 73         
         , "//result/doc[int='6'  and position()=2]"   //   <doc><int name="id">6</int></doc>    1a 2b 3c 00 00 03
         , "//result/doc[int='8'  and position()=3]"); //   <doc><int name="id">8</int></doc>    59 2d 4d              
-    assertQ(req("q", "text:c", "fl", "id", "sort", "payload desc", "rows", "20")
+    assertQ(req("q", "text:c", "fl", "id_i", "sort", "payload desc", "rows", "20")
         , "//result[@numFound='3']"                   // <result name="response" numFound="3" start="0">
         , "//result/doc[int='8'  and position()=1]"   //   <doc><int name="id">8</int></doc>    59 2d 4d              
         , "//result/doc[int='6'  and position()=2]"   //   <doc><int name="id">6</int></doc>    1a 2b 3c 00 00 03
         , "//result/doc[int='7'  and position()=3]"); //   <doc><int name="id">7</int></doc>    00 3c 73         
-    assertQ(req("q", "text:d", "fl", "id", "sort", "payload asc", "rows", "20")
+    assertQ(req("q", "text:d", "fl", "id_i", "sort", "payload asc", "rows", "20")
         , "//result[@numFound='3']"                   // <result name="response" numFound="3" start="0">
         , "//result/doc[int='12' and position()=1]"   //   <doc><int name="id">12</int></doc>   34 dd 4d
         , "//result/doc[int='13' and position()=2]"   //   <doc><int name="id">13</int></doc>   80 11 33      
         , "//result/doc[int='11' and position()=3]"); //   <doc><int name="id">11</int></doc>   ff af 9c
-    assertQ(req("q", "text:d", "fl", "id", "sort", "payload desc", "rows", "20")
+    assertQ(req("q", "text:d", "fl", "id_i", "sort", "payload desc", "rows", "20")
         , "//result[@numFound='3']"                   // <result name="response" numFound="3" start="0">
         , "//result/doc[int='11' and position()=1]"   //   <doc><int name="id">11</int></doc>   ff af 9c
         , "//result/doc[int='13' and position()=2]"   //   <doc><int name="id">13</int></doc>   80 11 33      

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestFieldSortValues.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestFieldSortValues.java b/solr/core/src/test/org/apache/solr/search/TestFieldSortValues.java
index 781127b..3e07bf3 100644
--- a/solr/core/src/test/org/apache/solr/search/TestFieldSortValues.java
+++ b/solr/core/src/test/org/apache/solr/search/TestFieldSortValues.java
@@ -41,10 +41,10 @@ public class TestFieldSortValues extends SolrTestCaseJ4 {
 
     // payload is backed by a custom sort field which returns the payload value mod 3
     assertQ(req("q", "*:*", "fl", "id", "sort", "payload asc, id asc", "fsv", "true")
-        , "//result/doc[int='2'  and position()=1]"
-        , "//result/doc[int='3'  and position()=2]"
-        , "//result/doc[int='5'  and position()=3]"
-        , "//result/doc[int='1'  and position()=4]"
-        , "//result/doc[int='4'  and position()=5]");
+        , "//result/doc[str='2'  and position()=1]"
+        , "//result/doc[str='3'  and position()=2]"
+        , "//result/doc[str='5'  and position()=3]"
+        , "//result/doc[str='1'  and position()=4]"
+        , "//result/doc[str='4'  and position()=5]");
   }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestFoldingMultitermQuery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestFoldingMultitermQuery.java b/solr/core/src/test/org/apache/solr/search/TestFoldingMultitermQuery.java
index fb982b8..5ceb224 100644
--- a/solr/core/src/test/org/apache/solr/search/TestFoldingMultitermQuery.java
+++ b/solr/core/src/test/org/apache/solr/search/TestFoldingMultitermQuery.java
@@ -346,4 +346,4 @@ public class TestFoldingMultitermQuery extends SolrTestCaseJ4 {
   public void testCJKWidth() {
     assertQ(req("q", "content_width:ヴィ*"), "//result[@numFound='1']");
   }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestGraphTermsQParserPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestGraphTermsQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestGraphTermsQParserPlugin.java
index 05ec982..1cb927d 100644
--- a/solr/core/src/test/org/apache/solr/search/TestGraphTermsQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestGraphTermsQParserPlugin.java
@@ -74,11 +74,11 @@ public class TestGraphTermsQParserPlugin extends SolrTestCaseJ4 {
     params.add("q", "{!graphTerms f=group_s maxDocFreq=10}1,2");
     params.add("sort", "id asc");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=5]",
-        "//result/doc[1]/float[@name='id'][.='1.0']",
-        "//result/doc[2]/float[@name='id'][.='2.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']",
-        "//result/doc[4]/float[@name='id'][.='6.0']",
-        "//result/doc[5]/float[@name='id'][.='7.0']"
+        "//result/doc[1]/str[@name='id'][.='1']",
+        "//result/doc[2]/str[@name='id'][.='2']",
+        "//result/doc[3]/str[@name='id'][.='5']",
+        "//result/doc[4]/str[@name='id'][.='6']",
+        "//result/doc[5]/str[@name='id'][.='7']"
     );
 
     //Test without maxDocFreq param. Should default to Integer.MAX_VALUE and match all terms.
@@ -86,11 +86,11 @@ public class TestGraphTermsQParserPlugin extends SolrTestCaseJ4 {
     params.add("q", "{!graphTerms f=group_s}1,2");
     params.add("sort", "id asc");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=5]",
-        "//result/doc[1]/float[@name='id'][.='1.0']",
-        "//result/doc[2]/float[@name='id'][.='2.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']",
-        "//result/doc[4]/float[@name='id'][.='6.0']",
-        "//result/doc[5]/float[@name='id'][.='7.0']"
+        "//result/doc[1]/str[@name='id'][.='1']",
+        "//result/doc[2]/str[@name='id'][.='2']",
+        "//result/doc[3]/str[@name='id'][.='5']",
+        "//result/doc[4]/str[@name='id'][.='6']",
+        "//result/doc[5]/str[@name='id'][.='7']"
     );
 
     params = new ModifiableSolrParams();
@@ -104,11 +104,11 @@ public class TestGraphTermsQParserPlugin extends SolrTestCaseJ4 {
     params.add("q", "{!graphTerms f=test_ti maxDocFreq=10}5,10");
     params.add("sort", "id asc");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=5]",
-        "//result/doc[1]/float[@name='id'][.='1.0']",
-        "//result/doc[2]/float[@name='id'][.='2.0']",
-        "//result/doc[3]/float[@name='id'][.='5.0']",
-        "//result/doc[4]/float[@name='id'][.='6.0']",
-        "//result/doc[5]/float[@name='id'][.='7.0']"
+        "//result/doc[1]/str[@name='id'][.='1']",
+        "//result/doc[2]/str[@name='id'][.='2']",
+        "//result/doc[3]/str[@name='id'][.='5']",
+        "//result/doc[4]/str[@name='id'][.='6']",
+        "//result/doc[5]/str[@name='id'][.='7']"
     );
 
     //Test with int field
@@ -116,8 +116,8 @@ public class TestGraphTermsQParserPlugin extends SolrTestCaseJ4 {
     params.add("q", "{!graphTerms f=test_ti maxDocFreq=2}5,10");
     params.add("sort", "id asc");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=2]",
-        "//result/doc[1]/float[@name='id'][.='6.0']",
-        "//result/doc[2]/float[@name='id'][.='7.0']"
+        "//result/doc[1]/str[@name='id'][.='6']",
+        "//result/doc[2]/str[@name='id'][.='7']"
     );
   }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
index 46b7b60..a4fa1b8 100644
--- a/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
@@ -91,7 +91,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set1.add(s);
       }
@@ -109,7 +109,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set2.add(s);
       }
@@ -128,7 +128,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set3.add(s);
       }
@@ -158,7 +158,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set1.add(s);
       }
@@ -176,7 +176,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set2.add(s);
       }
@@ -203,7 +203,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set1.add(s);
       }
@@ -221,7 +221,7 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
 
     while(it.hasNext()) {
       String s = it.next();
-      String results = h.validateXPath(response, "*[count(//int[@name='id'][.='"+s+"'])=1]");
+      String results = h.validateXPath(response, "*[count(//str[@name='id'][.='"+s+"'])=1]");
       if(results == null) {
         set2.add(s);
       }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java b/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java
index f282c3f..0945ea2 100644
--- a/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java
+++ b/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java
@@ -45,7 +45,7 @@ public class TestQueryTypes extends AbstractSolrTestCase {
     assertU(adoc("id","10","text_no_analyzer","should just work"));
 
     Object[] arr = new Object[] {
-    "id",999.0
+    "id",999
     ,"v_s","wow dude"
     ,"v_t","wow"
     ,"v_ti",-1
@@ -75,7 +75,7 @@ public class TestQueryTypes extends AbstractSolrTestCase {
       // normal lucene fielded query
       assertQ(req( "q",f+":\""+v+'"')
               ,"//result[@numFound='1']"
-              ,"//*[@name='id'][.='999.0']"
+              ,"//*[@name='id'][.='999']"
               ,"//*[@name='" + f + "'][.='" + v + "']"
               );
 
@@ -116,7 +116,7 @@ public class TestQueryTypes extends AbstractSolrTestCase {
 
     // frange and function query only work on single valued field types
     Object[] fc_vals = new Object[] {
-      "id",999.0
+      "id_i",999
       ,"v_s","wow dude"
       ,"v_ti",-1
       ,"v_tl",-1234567891234567890L
@@ -154,7 +154,7 @@ public class TestQueryTypes extends AbstractSolrTestCase {
               ,"//result[@numFound='1']"
               );
 
-      if (!"id".equals(f)) {
+      if (!"id_i".equals(f)) {
         assertQ(req( "fq","id:1", "q", "{!frange l=1 u=1}if(exists("+f+"),1,0)" )
             ,"//result[@numFound='0']"
         );
@@ -352,40 +352,40 @@ public class TestQueryTypes extends AbstractSolrTestCase {
             req("df", "v_t",
                 "q", "{!switch case.x=Dude case.z=Yonik} x ")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='1.0']");
+            ,"//*[@name='id'][.='1']");
     assertQ("test empty matching switch query",
             req("df", "v_t",
                 "q", "{!switch case.x=Dude case=Yonik}  ")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='2.0']");
+            ,"//*[@name='id'][.='2']");
     assertQ("test empty matching switch query",
             req("df", "v_t",
                 "q", "{!switch case.x=Dude case=Yonik v=''}")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='2.0']");
+            ,"//*[@name='id'][.='2']");
     assertQ("test empty matching switch query",
             req("df", "v_t",
                 "q", "{!switch case.x=Dude case=Yonik v=$qq}")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='2.0']");
+            ,"//*[@name='id'][.='2']");
     assertQ("test matching switch query w/deref",
             req("q", "{!switch case.x=$d case.z=Yonik} x ",
                 "df", "v_t",
                 "d", "Dude")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='1.0']");
+            ,"//*[@name='id'][.='1']");
     assertQ("test default switch query",
             req("q", "{!switch default=$d case.x=$d case.z=Yonik}asdf",
                 "df", "v_t",
                 "d", "Dude")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='1.0']");
+            ,"//*[@name='id'][.='1']");
     assertQ("test empty default switch query",
             req("q", "{!switch default=$d case.x=$d case.z=Yonik v=$qq}",
                 "df", "v_t",
                 "d", "Dude")
             ,"//result[@numFound='1']"
-            ,"//*[@name='id'][.='1.0']");
+            ,"//*[@name='id'][.='1']");
 
     try {
       ignoreException("No\\ default\\, and no switch case");

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/625b1cba/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java b/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
index 0ba716d..959386a 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
@@ -135,8 +135,8 @@ public class TestRangeQuery extends SolrTestCaseJ4 {
 
     // simple test of a function rather than just the field
     assertQ(req("{!frange l=0 u=2}id"), "*[count(//doc)=3]");
-    assertQ(req("{!frange l=0 u=2}product(id,2)"), "*[count(//doc)=2]");
-    assertQ(req("{!frange l=100 u=102}sum(id,100)"), "*[count(//doc)=3]");
+    assertQ(req("{!frange l=0 u=2}product(id_i,2)"), "*[count(//doc)=2]");
+    assertQ(req("{!frange l=100 u=102}sum(id_i,100)"), "*[count(//doc)=3]");
 
 
     for (Map.Entry<String,String[]> entry : norm_fields.entrySet()) {