You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2016/10/27 20:09:18 UTC

[14/50] [abbrv] lucene-solr:jira/solr-8593: Fixed Interval Facet count issue in cases of open/close intervals on the same values

Fixed Interval Facet count issue in cases of open/close intervals on the same values


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

Branch: refs/heads/jira/solr-8593
Commit: ce57e8a8f4274db9ad1a78f06d37a7c9e02b3fb8
Parents: c9132ac
Author: Tomas Fernandez Lobbe <tf...@apache.org>
Authored: Mon Oct 24 19:49:54 2016 -0700
Committer: Tomas Fernandez Lobbe <tf...@apache.org>
Committed: Mon Oct 24 19:49:54 2016 -0700

----------------------------------------------------------------------
 solr/CHANGES.txt                                        |  5 ++++-
 .../java/org/apache/solr/request/IntervalFacets.java    | 12 +++++++++++-
 .../org/apache/solr/request/TestIntervalFaceting.java   |  7 ++++++-
 3 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ce57e8a8/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 4355b80..475ba7f 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -208,6 +208,9 @@ Bug Fixes
 
 * SOLR-9518: Kerberos Delegation Tokens don't work without a chrooted ZK (Ishan Chattopadhyaya,via noble)
 
+* SOLR-9687: Fixed Interval Facet count issue in cases of open/close intervals on the same values
+ (Andy Chillrud, Tom�s Fern�ndez L�bbe)  
+
 Optimizations
 ----------------------
 
@@ -3290,7 +3293,7 @@ Bug Fixes
   while accessing other collections. (Shai Erera)
 
 * SOLR-7412: Fixed range.facet.other parameter for distributed requests. 
-  (Will Miller, Tom�s Fern�ndes L�bbe)
+  (Will Miller, Tom�s Fern�ndez L�bbe)
 
 * SOLR-6087: SolrIndexSearcher makes no DelegatingCollector.finish() call when IndexSearcher
   throws an expected exception. (Christine Poerschke via shalin)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ce57e8a8/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/request/IntervalFacets.java b/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
index dfe0f77..14bf700 100644
--- a/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
+++ b/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
@@ -157,7 +157,17 @@ public class IntervalFacets implements Iterable<FacetInterval> {
         if (o2.start == null) {
           return 1;
         }
-        return o1.start.compareTo(o2.start);
+        int startComparison = o1.start.compareTo(o2.start);
+        if (startComparison == 0) {
+          if (o1.startOpen != o2.startOpen) {
+            if (!o1.startOpen) {
+              return -1;
+            } else {
+              return 1;
+            }
+          }
+        }
+        return startComparison;
       }
     });
     return sortedIntervals;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ce57e8a8/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
index 68eac48..5a4510f 100644
--- a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
+++ b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
@@ -943,6 +943,9 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
     assertIntervalQuery(field, "(0,2]", "2");
     assertIntervalQuery(field, "[*,5]", "6");
     assertIntervalQuery(field, "[*,3)", "3", "[2,5)", "3", "[6,8)", "2", "[3,*]", "7", "[10,10]", "1", "[10,10]", "1", "[10,10]", "1");
+    assertIntervalQuery(field, "(5,*]", "4", "[5,5]", "1", "(*,5)", "5");
+    assertIntervalQuery(field, "[5,5]", "1", "(*,5)", "5", "(5,*]", "4");
+    assertIntervalQuery(field, "(5,*]", "4", "(*,5)", "5", "[5,5]", "1");
 
   }
 
@@ -955,7 +958,9 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
     assertIntervalQuery(field, "[*,bird)", "2", "[bird,cat)", "1", "[cat,dog)", "2", "[dog,*]", "4");
     assertIntervalQuery(field, "[*,*]", "9", "[*,dog)", "5", "[*,dog]", "8", "[dog,*]", "4");
     assertIntervalQuery(field, field + ":dog", 3, "[*,*]", "3", "[*,dog)", "0", "[*,dog]", "3", "[dog,*]", "3", "[bird,cat]", "0");
-
+    assertIntervalQuery(field, "(*,dog)", "5", "[dog, dog]", "3", "(dog,*)", "1");
+    assertIntervalQuery(field, "[dog, dog]", "3", "(dog,*)", "1", "(*,dog)", "5");
+    assertIntervalQuery(field, "(dog,*)", "1", "(*,dog)", "5", "[dog, dog]", "3");
   }
 
   /**