You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dp...@apache.org on 2018/05/30 15:46:58 UTC

[1/2] lucene-solr:branch_7x: SOLR-12271: Fix for analytics component reading negative values from double and float fields.

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_7x 1676c08b7 -> 528b96540


SOLR-12271: Fix for analytics component reading negative values from double and float fields.


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

Branch: refs/heads/branch_7x
Commit: a02876c9be85ceb7008d53a78a555eb14f28eb1e
Parents: 1676c08
Author: Houston Putman <hp...@bloomberg.net>
Authored: Wed Apr 25 15:05:39 2018 +0000
Committer: Dennis Gove <dp...@gmail.com>
Committed: Wed May 30 11:46:09 2018 -0400

----------------------------------------------------------------------
 .../analytics/function/field/DoubleField.java   |  3 +-
 .../analytics/function/field/FloatField.java    |  3 +-
 .../field/AbstractAnalyticsFieldTest.java       | 34 ++++++++++----------
 3 files changed, 19 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a02876c9/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/DoubleField.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/DoubleField.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/DoubleField.java
index 68941a4..fae26e3 100644
--- a/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/DoubleField.java
+++ b/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/DoubleField.java
@@ -23,7 +23,6 @@ import java.util.function.DoubleConsumer;
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.util.NumericUtils;
 import org.apache.solr.analytics.facet.compare.ExpressionComparator;
 import org.apache.solr.analytics.value.DoubleValue.CastingDoubleValue;
 import org.apache.solr.schema.DoublePointField;
@@ -50,7 +49,7 @@ public class DoubleField extends AnalyticsField implements CastingDoubleValue {
   public void collect(int doc) throws IOException {
     exists = docValues.advanceExact(doc);
     if (exists) {
-      value = NumericUtils.sortableLongToDouble(docValues.longValue());
+      value = Double.longBitsToDouble(docValues.longValue());
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a02876c9/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/FloatField.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/FloatField.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/FloatField.java
index c382d61..82e82958 100644
--- a/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/FloatField.java
+++ b/solr/contrib/analytics/src/java/org/apache/solr/analytics/function/field/FloatField.java
@@ -23,7 +23,6 @@ import java.util.function.DoubleConsumer;
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.util.NumericUtils;
 import org.apache.solr.analytics.facet.compare.ExpressionComparator;
 import org.apache.solr.analytics.util.function.FloatConsumer;
 import org.apache.solr.analytics.value.FloatValue.CastingFloatValue;
@@ -51,7 +50,7 @@ public class FloatField extends AnalyticsField implements CastingFloatValue {
   public void collect(int doc) throws IOException {
     exists = docValues.advanceExact(doc);
     if (exists) {
-      value = NumericUtils.sortableIntToFloat((int)docValues.longValue());
+      value = Float.intBitsToFloat((int)docValues.longValue());
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a02876c9/solr/contrib/analytics/src/test/org/apache/solr/analytics/function/field/AbstractAnalyticsFieldTest.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test/org/apache/solr/analytics/function/field/AbstractAnalyticsFieldTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/function/field/AbstractAnalyticsFieldTest.java
index 4361dea..299d21e 100644
--- a/solr/contrib/analytics/src/test/org/apache/solr/analytics/function/field/AbstractAnalyticsFieldTest.java
+++ b/solr/contrib/analytics/src/test/org/apache/solr/analytics/function/field/AbstractAnalyticsFieldTest.java
@@ -84,11 +84,11 @@ public class AbstractAnalyticsFieldTest extends SolrTestCaseJ4 {
     
     missingDocuments = new ArrayList<>();
     
-    assertU(adoc("id", "-1"));
-    missingDocuments.add("-1");
+    assertU(adoc("id", "-2"));
+    missingDocuments.add("-2");
     assertU(adoc("id", "5"));
     missingDocuments.add("5");
-    for (int i = 0; i < 5; ++i) {
+    for (int i = -1; i < 5; ++i) {
       assertU(adoc(
           "id", "" + i, 
           
@@ -140,17 +140,17 @@ public class AbstractAnalyticsFieldTest extends SolrTestCaseJ4 {
           "double_dm_p", "" + (i + 10.5),
           "double_dm_p", "" + (i + 20.5),
           
-          "date_dt_t", "180" + i + "-12-31T23:59:59Z",
-          "date_dtm_t", "180" + i + "-12-31T23:59:59Z",
-          "date_dtm_t", "18" + (i + 10) + "-12-31T23:59:59Z",
-          "date_dtm_t", "18" + (i + 10) + "-12-31T23:59:59Z",
-          "date_dtm_t", "18" + (i + 20) + "-12-31T23:59:59Z",
+          "date_dt_t", (1800 + i) + "-12-31T23:59:59Z",
+          "date_dtm_t", (1800 + i) + "-12-31T23:59:59Z",
+          "date_dtm_t", (1800 + i + 10) + "-12-31T23:59:59Z",
+          "date_dtm_t", (1800 + i + 10) + "-12-31T23:59:59Z",
+          "date_dtm_t", (1800 + i + 20) + "-12-31T23:59:59Z",
           
-          "date_dt_p", "180" + i + "-12-31T23:59:59Z",
-          "date_dtm_p", "180" + i + "-12-31T23:59:59Z",
-          "date_dtm_p", "18" + (i + 10) + "-12-31T23:59:59Z",
-          "date_dtm_p", "18" + (i + 10) + "-12-31T23:59:59Z",
-          "date_dtm_p", "18" + (i + 20) + "-12-31T23:59:59Z",
+          "date_dt_p", (1800 + i) + "-12-31T23:59:59Z",
+          "date_dtm_p", (1800 + i) + "-12-31T23:59:59Z",
+          "date_dtm_p", (1800 + i + 10) + "-12-31T23:59:59Z",
+          "date_dtm_p", (1800 + i + 10) + "-12-31T23:59:59Z",
+          "date_dtm_p", (1800 + i + 20) + "-12-31T23:59:59Z",
           
           "string_s", "abc" + i,
           "string_sm", "abc" + i,
@@ -192,11 +192,11 @@ public class AbstractAnalyticsFieldTest extends SolrTestCaseJ4 {
       doubles.put(i + 20.5, 1);
       multiDoubles.put(""+i, doubles);
       
-      singleDates.put(""+i, Instant.parse("180" + i + "-12-31T23:59:59Z").toEpochMilli());
+      singleDates.put(""+i, Instant.parse((1800 + i) + "-12-31T23:59:59Z").toEpochMilli());
       Map<Long, Integer> dates = new HashMap<>();
-      dates.put(Instant.parse("180" + i + "-12-31T23:59:59Z").toEpochMilli(), 1);
-      dates.put(Instant.parse("18" + ( i + 10 ) + "-12-31T23:59:59Z").toEpochMilli(), 2);
-      dates.put(Instant.parse("18" + ( i + 20 ) + "-12-31T23:59:59Z").toEpochMilli(), 1);
+      dates.put(Instant.parse((1800 + i) + "-12-31T23:59:59Z").toEpochMilli(), 1);
+      dates.put(Instant.parse((1800 + i + 10) + "-12-31T23:59:59Z").toEpochMilli(), 2);
+      dates.put(Instant.parse((1800 + i + 20) + "-12-31T23:59:59Z").toEpochMilli(), 1);
       multiDates.put(""+i, dates);
       
       singleStrings.put(""+i, "abc" + i);


[2/2] lucene-solr:branch_7x: SOLR-12271: Updating changes.txt

Posted by dp...@apache.org.
SOLR-12271: Updating changes.txt


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

Branch: refs/heads/branch_7x
Commit: 528b96540e4d65ff69bc4f2d6e0f78615c5e317e
Parents: a02876c
Author: Houston Putman <hp...@bloomberg.net>
Authored: Wed Apr 25 15:11:45 2018 +0000
Committer: Dennis Gove <dp...@gmail.com>
Committed: Wed May 30 11:46:25 2018 -0400

----------------------------------------------------------------------
 solr/CHANGES.txt | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/528b9654/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 1b8925e..dba9d90 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -258,6 +258,8 @@ Bug Fixes
 
 * SOLR-12417: velocity response writer should enforce valid function name for v.json parameter (yonik)
 
+* SOLR-12271: Fixed bug in how Analytics component reads negative values from float and double fields. (Houston Putman)
+
 Optimizations
 ----------------------