You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2018/08/14 13:57:14 UTC

lucene-solr:branch_7x: SOLR-12660: Refine output form and register stream function

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_7x edfc35dcb -> f018159bb


SOLR-12660: Refine output form and register stream function


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

Branch: refs/heads/branch_7x
Commit: f018159bb1331845b433160c7df197e24c38aa98
Parents: edfc35d
Author: Joel Bernstein <jb...@apache.org>
Authored: Tue Aug 14 09:50:34 2018 -0400
Committer: Joel Bernstein <jb...@apache.org>
Committed: Tue Aug 14 09:57:00 2018 -0400

----------------------------------------------------------------------
 .../org/apache/solr/client/solrj/io/Lang.java   |  1 +
 .../client/solrj/io/eval/OutliersEvaluator.java | 20 +++++++---------
 .../apache/solr/client/solrj/io/TestLang.java   |  2 +-
 .../solrj/io/stream/MathExpressionTest.java     | 20 +++++++---------
 .../solrj/io/stream/StreamDecoratorTest.java    | 25 ++++++++++++++++++++
 5 files changed, 43 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f018159b/solr/solrj/src/java/org/apache/solr/client/solrj/io/Lang.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/Lang.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/Lang.java
index c6485bb..c9e1326 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/Lang.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/Lang.java
@@ -249,6 +249,7 @@ public class Lang {
         .withFunctionName("knnRegress", KnnRegressionEvaluator.class)
         .withFunctionName("gaussfit", GaussFitEvaluator.class)
         .withFunctionName("outliers", OutliersEvaluator.class)
+        .withFunctionName("stream", GetStream.class)
 
         // Boolean Stream Evaluators
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f018159b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OutliersEvaluator.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OutliersEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OutliersEvaluator.java
index 85d298f..5a14a52 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OutliersEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OutliersEvaluator.java
@@ -93,16 +93,14 @@ public class OutliersEvaluator extends RecursiveObjectEvaluator implements ManyV
 
         double cumProb = d.cumulativeProbability(n.intValue());
         if(low >= 0 && cumProb <= low) {
-          t.put("lowOutlier", true);
-          t.put("lowOutlierValue", n);
-          t.put("cumulativeProbablity", cumProb);
+          t.put("lowOutlierValue_d", n);
+          t.put("cumulativeProbablity_d", cumProb);
           outliers.add(t);
         }
 
         if(hi >= 0 && cumProb >= hi) {
-          t.put("highOutlier", true);
-          t.put("highOutlierValue", n);
-          t.put("cumulativeProbablity", cumProb);
+          t.put("highOutlierValue_d", n);
+          t.put("cumulativeProbablity_d", cumProb);
           outliers.add(t);
         }
       }
@@ -119,17 +117,15 @@ public class OutliersEvaluator extends RecursiveObjectEvaluator implements ManyV
 
         double cumProb = d.cumulativeProbability(n.doubleValue());
         if(low >= 0 && cumProb <= low) {
-          t.put("lowOutlier", true);
-          t.put("lowOutlierValue", n);
-          t.put("cumulativeProbablity", cumProb);
+          t.put("lowOutlierValue_d", n);
+          t.put("cumulativeProbablity_d", cumProb);
           outliers.add(t);
 
         }
 
         if(hi >= 0 && cumProb >= hi) {
-          t.put("highOutlier", true);
-          t.put("highOutlierValue", n);
-          t.put("cumulativeProbablity", cumProb);
+          t.put("highOutlierValue_d", n);
+          t.put("cumulativeProbablity_d", cumProb);
           outliers.add(t);
         }
       }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f018159b/solr/solrj/src/test/org/apache/solr/client/solrj/io/TestLang.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/TestLang.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/TestLang.java
index c615bcb..3abd196 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/TestLang.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/TestLang.java
@@ -70,7 +70,7 @@ public class TestLang extends LuceneTestCase {
       "mod", "ceil", "floor", "sin", "asin", "sinh", "cos", "acos", "cosh", "tan", "atan", "tanh", "round", "sqrt",
       "cbrt", "coalesce", "uuid", "if", "convert", "valueAt", "memset", "fft", "ifft", "euclidean","manhattan",
       "earthMovers", "canberra", "chebyshev", "ones", "zeros", "setValue", "getValue", "knnRegress", "gaussfit",
-      "outliers"};
+      "outliers", "stream"};
 
   @Test
   public void testLang() {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f018159b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
index be51050..bfd4160 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
@@ -3296,32 +3296,28 @@ public class MathExpressionTest extends SolrCloudTestCase {
     Map high = out.get(0);
     assertEquals(((String)high.get("id")), "1");
 
-    assertEquals(((Number)high.get("cumulativeProbablity")).doubleValue(), 0.9772498680518208, 0.0 );
-    assertEquals(((Number)high.get("highOutlierValue")).doubleValue(), 110.0, 0.0);
-    assertEquals(((Boolean)high.get("highOutlier")).booleanValue(), true);
+    assertEquals(((Number)high.get("cumulativeProbablity_d")).doubleValue(), 0.9772498680518208, 0.0 );
+    assertEquals(((Number)high.get("highOutlierValue_d")).doubleValue(), 110.0, 0.0);
 
 
     Map low = out.get(1);
     assertEquals(((String)low.get("id")), "2");
-    assertEquals(((Number)low.get("cumulativeProbablity")).doubleValue(), 0.022750131948179167, 0.0 );
-    assertEquals(((Number)low.get("lowOutlierValue")).doubleValue(), 90, 0.0);
-    assertEquals(((Boolean)low.get("lowOutlier")).booleanValue(), true);
+    assertEquals(((Number)low.get("cumulativeProbablity_d")).doubleValue(), 0.022750131948179167, 0.0 );
+    assertEquals(((Number)low.get("lowOutlierValue_d")).doubleValue(), 90, 0.0);
 
 
     List<Map> out1 = (List<Map>)tuples.get(0).get("f");
     assertEquals(out1.size(), 2);
     Map high1 = out1.get(0);
     assert(high1.get("id") == null);
-    assertEquals(((Number)high1.get("cumulativeProbablity")).doubleValue(), 0.9772498680518208, 0.0 );
-    assertEquals(((Number)high1.get("highOutlierValue")).doubleValue(), 110.0, 0.0);
-    assertEquals(((Boolean)high1.get("highOutlier")).booleanValue(), true);
+    assertEquals(((Number)high1.get("cumulativeProbablity_d")).doubleValue(), 0.9772498680518208, 0.0 );
+    assertEquals(((Number)high1.get("highOutlierValue_d")).doubleValue(), 110.0, 0.0);
 
 
     Map low1 = out1.get(1);
     assert(low1.get("id") == null);
-    assertEquals(((Number)low1.get("cumulativeProbablity")).doubleValue(), 0.022750131948179167, 0.0 );
-    assertEquals(((Number)low1.get("lowOutlierValue")).doubleValue(), 90, 0.0);
-    assertEquals(((Boolean)low1.get("lowOutlier")).booleanValue(), true);
+    assertEquals(((Number)low1.get("cumulativeProbablity_d")).doubleValue(), 0.022750131948179167, 0.0 );
+    assertEquals(((Number)low1.get("lowOutlierValue_d")).doubleValue(), 90, 0.0);
 
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f018159b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
index be919eb..ba050ff 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
@@ -3491,6 +3491,31 @@ public class StreamDecoratorTest extends SolrCloudTestCase {
   }
 
   @Test
+  public void testStream() throws Exception {
+    UpdateRequest updateRequest = new UpdateRequest();
+    updateRequest.add(id, "hello", "test_t", "l b c d c e", "test_i", "5");
+    updateRequest.add(id, "hello1", "test_t", "l b c d c", "test_i", "4");
+
+    updateRequest.commit(cluster.getSolrClient(), COLLECTIONORALIAS);
+
+    String expr = "search("+COLLECTIONORALIAS+", q=\"id:hello1\", fl=\"id,test_t, test_i\", sort=\"id desc\")";
+    String cat = "let(a ="+expr+",stream(a))";
+    ModifiableSolrParams paramsLoc = new ModifiableSolrParams();
+    paramsLoc.set("expr", cat);
+    paramsLoc.set("qt", "/stream");
+
+    String url = cluster.getJettySolrRunners().get(0).getBaseUrl().toString()+"/"+COLLECTIONORALIAS;
+    TupleStream solrStream = new SolrStream(url, paramsLoc);
+
+    StreamContext context = new StreamContext();
+    solrStream.setStreamContext(context);
+    List<Tuple> tuples = getTuples(solrStream);
+    assertTrue(tuples.size() == 1);
+
+
+  }
+
+  @Test
   @LuceneTestCase.BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 2-Aug-2018
   public void testExecutorStream() throws Exception {
     CollectionAdminRequest.createCollection("workQueue", "conf", 2, 1).processAndWait(cluster.getSolrClient(), DEFAULT_TIMEOUT);