You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2017/03/27 06:05:30 UTC

[36/39] lucene-solr:feature/autoscaling: Fix test to stop asserting specific order when secondary sort is unspecified, add new checks that do assert an explicit order when secondary sort IS specified.

Fix test to stop asserting specific order when secondary sort is unspecified, add new checks that do assert an explicit order when secondary sort IS specified.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/843fabb6
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/843fabb6
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/843fabb6

Branch: refs/heads/feature/autoscaling
Commit: 843fabb6e1bc57e7bfc683ea8a711259d10507f7
Parents: 7e4dc2b
Author: Chris Hostetter <ho...@apache.org>
Authored: Thu Mar 23 18:28:10 2017 -0700
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Mon Mar 27 11:34:10 2017 +0530

----------------------------------------------------------------------
 .../apache/solr/schema/NumericFieldsTest.java   | 108 ++++++++++++++++---
 1 file changed, 95 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/843fabb6/solr/core/src/test/org/apache/solr/schema/NumericFieldsTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/NumericFieldsTest.java b/solr/core/src/test/org/apache/solr/schema/NumericFieldsTest.java
index fe5975e..17ded2f 100644
--- a/solr/core/src/test/org/apache/solr/schema/NumericFieldsTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/NumericFieldsTest.java
@@ -51,12 +51,15 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
   public void testSortMissingFirstLast() {
     clearIndex();
 
+    // NOTE: segments may be merged in any order, so we can't make any assumptions about
+    // the relative order of M1 vs M2 unless we have a secondary sort
     assertU(adoc("id", "M1"));
     assertU(adoc(getDoc("+4", 4, "2011-04-04T00:00:00Z")));
     assertU(adoc(getDoc("+5", 5, "2011-05-05T00:00:00Z")));
     assertU(adoc(getDoc("-3", -3, "2011-01-01T00:00:00Z")));
     assertU(adoc("id", "M2"));
     assertU(commit());
+    
     // 'normal' sorting.  Missing Values are 0
     String suffix = "";
     for (String t : types) {
@@ -64,8 +67,8 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
         assertQ("Sorting Asc: " + t + suffix,
             req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc"),
             "//*[@numFound='5']",
-            "//result/doc[1]/str[@name='id'][.='M1']",
-            "//result/doc[2]/str[@name='id'][.='M2']",
+            "//result/doc[1]/str[@name='id'][starts-with(.,'M')]",
+            "//result/doc[2]/str[@name='id'][starts-with(.,'M')]",
             "//result/doc[3]/str[@name='id'][.='-3']",
             "//result/doc[4]/str[@name='id'][.='+4']",
             "//result/doc[5]/str[@name='id'][.='+5']"
@@ -77,6 +80,26 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
             "//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'][starts-with(.,'M')]",
+            "//result/doc[5]/str[@name='id'][starts-with(.,'M')]"
+        );
+        
+        assertQ("Sorting Asc w/secondary on id desc: " + t + suffix,
+            req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc, id desc"),
+            "//*[@numFound='5']",
+            "//result/doc[1]/str[@name='id'][.='M2']",
+            "//result/doc[2]/str[@name='id'][.='M1']",
+            "//result/doc[3]/str[@name='id'][.='-3']",
+            "//result/doc[4]/str[@name='id'][.='+4']",
+            "//result/doc[5]/str[@name='id'][.='+5']"
+        );
+
+        assertQ("Sorting Desc w/secondary on id asc: " + t + suffix,
+            req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc, id asc"),
+            "//*[@numFound='5']",
+            "//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'][.='M1']",
             "//result/doc[5]/str[@name='id'][.='M2']"
         );
@@ -85,8 +108,8 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
             req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc"),
             "//*[@numFound='5']",
             "//result/doc[1]/str[@name='id'][.='-3']",
-            "//result/doc[2]/str[@name='id'][.='M1']",
-            "//result/doc[3]/str[@name='id'][.='M2']",
+            "//result/doc[2]/str[@name='id'][starts-with(.,'M')]",
+            "//result/doc[3]/str[@name='id'][starts-with(.,'M')]",
             "//result/doc[4]/str[@name='id'][.='+4']",
             "//result/doc[5]/str[@name='id'][.='+5']"
         );
@@ -96,6 +119,26 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
             "//*[@numFound='5']",
             "//result/doc[1]/str[@name='id'][.='+5']",
             "//result/doc[2]/str[@name='id'][.='+4']",
+            "//result/doc[3]/str[@name='id'][starts-with(.,'M')]",
+            "//result/doc[4]/str[@name='id'][starts-with(.,'M')]",
+            "//result/doc[5]/str[@name='id'][.='-3']"
+        );
+        
+        assertQ("Sorting Asc w/secondary on id desc: " + t + suffix,
+            req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc, id desc"),
+            "//*[@numFound='5']",
+            "//result/doc[1]/str[@name='id'][.='-3']",
+            "//result/doc[2]/str[@name='id'][.='M2']",
+            "//result/doc[3]/str[@name='id'][.='M1']",
+            "//result/doc[4]/str[@name='id'][.='+4']",
+            "//result/doc[5]/str[@name='id'][.='+5']"
+        );
+
+        assertQ("Sorting Desc w/secondary on id asc: " + t + suffix,
+            req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc, id asc"),
+            "//*[@numFound='5']",
+            "//result/doc[1]/str[@name='id'][.='+5']",
+            "//result/doc[2]/str[@name='id'][.='+4']",
             "//result/doc[3]/str[@name='id'][.='M1']",
             "//result/doc[4]/str[@name='id'][.='M2']",
             "//result/doc[5]/str[@name='id'][.='-3']"
@@ -114,13 +157,32 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
           "//result/doc[1]/str[@name='id'][.='-3']",
           "//result/doc[2]/str[@name='id'][.='+4']",
           "//result/doc[3]/str[@name='id'][.='+5']",
-          "//result/doc[4]/str[@name='id'][.='M1']",
-          "//result/doc[5]/str[@name='id'][.='M2']"
+          "//result/doc[4]/str[@name='id'][starts-with(.,'M')]",
+          "//result/doc[5]/str[@name='id'][starts-with(.,'M')]"
       );
 
-      // This does not match
       assertQ("Sorting Desc: " + t + suffix,
-          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc", "indent", "on"),
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc"),
+          "//*[@numFound='5']",
+          "//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'][starts-with(.,'M')]",
+          "//result/doc[5]/str[@name='id'][starts-with(.,'M')]"
+      );
+
+      assertQ("Sorting Asc w/secondary on id desc: " + t + suffix,
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc, id desc"),
+          "//*[@numFound='5']",
+          "//result/doc[1]/str[@name='id'][.='-3']",
+          "//result/doc[2]/str[@name='id'][.='+4']",
+          "//result/doc[3]/str[@name='id'][.='+5']",
+          "//result/doc[4]/str[@name='id'][.='M2']",
+          "//result/doc[5]/str[@name='id'][.='M1']"
+      );
+
+      assertQ("Sorting Desc w/secondary on id asc: " + t + suffix,
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc, id asc"),
           "//*[@numFound='5']",
           "//result/doc[1]/str[@name='id'][.='+5']",
           "//result/doc[2]/str[@name='id'][.='+4']",
@@ -134,18 +196,37 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
     suffix = "_first";
     for (String t : types) {
       assertQ("Sorting Asc: " + t + suffix,
-          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc", "indent", "on"),
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc"),
           "//*[@numFound='5']",
-          "//result/doc[1]/str[@name='id'][.='M1']",
-          "//result/doc[2]/str[@name='id'][.='M2']",
+          "//result/doc[1]/str[@name='id'][starts-with(.,'M')]",
+          "//result/doc[2]/str[@name='id'][starts-with(.,'M')]",
           "//result/doc[3]/str[@name='id'][.='-3']",
           "//result/doc[4]/str[@name='id'][.='+4']",
           "//result/doc[5]/str[@name='id'][.='+5']"
       );
 
-      // This does not match
       assertQ("Sorting Desc: " + t + suffix,
-          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc", "indent", "on"),
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc"),
+          "//*[@numFound='5']",
+          "//result/doc[1]/str[@name='id'][starts-with(.,'M')]",
+          "//result/doc[2]/str[@name='id'][starts-with(.,'M')]",
+          "//result/doc[3]/str[@name='id'][.='+5']",
+          "//result/doc[4]/str[@name='id'][.='+4']",
+          "//result/doc[5]/str[@name='id'][.='-3']"
+      );
+
+      assertQ("Sorting Asc w/secondary on id desc: " + t + suffix,
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " asc, id desc"),
+          "//*[@numFound='5']",
+          "//result/doc[1]/str[@name='id'][.='M2']",
+          "//result/doc[2]/str[@name='id'][.='M1']",
+          "//result/doc[3]/str[@name='id'][.='-3']",
+          "//result/doc[4]/str[@name='id'][.='+4']",
+          "//result/doc[5]/str[@name='id'][.='+5']"
+      );
+
+      assertQ("Sorting Desc w/secondary on id asc: " + t + suffix,
+          req("fl", "id", "q", "*:*", "sort", (t + suffix) + " desc, id asc"),
           "//*[@numFound='5']",
           "//result/doc[1]/str[@name='id'][.='M1']",
           "//result/doc[2]/str[@name='id'][.='M2']",
@@ -153,6 +234,7 @@ public class NumericFieldsTest extends SolrTestCaseJ4 {
           "//result/doc[4]/str[@name='id'][.='+4']",
           "//result/doc[5]/str[@name='id'][.='-3']"
       );
+
     }
   }
 }