You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/05/25 18:55:35 UTC

svn commit: r1127583 - in /lucene/dev/branches/branch_3x: ./ lucene/ lucene/backwards/ solr/ solr/src/java/org/apache/solr/search/ solr/src/java/org/apache/solr/search/function/ solr/src/test/org/apache/solr/search/function/

Author: mikemccand
Date: Wed May 25 16:55:35 2011
New Revision: 1127583

URL: http://svn.apache.org/viewvc?rev=1127583&view=rev
Log:
SOLR-2371: add min(), allow max() to take two args, for function query (backport from trunk)

Removed:
    lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/function/MaxFloatFunction.java
Modified:
    lucene/dev/branches/branch_3x/   (props changed)
    lucene/dev/branches/branch_3x/lucene/   (props changed)
    lucene/dev/branches/branch_3x/lucene/backwards/   (props changed)
    lucene/dev/branches/branch_3x/solr/   (props changed)
    lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/ValueSourceParser.java
    lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java

Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/ValueSourceParser.java?rev=1127583&r1=1127582&r2=1127583&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/ValueSourceParser.java Wed May 25 16:55:35 2011
@@ -39,7 +39,6 @@ import org.apache.solr.search.function.D
 import org.apache.solr.search.function.DualFloatFunction;
 import org.apache.solr.search.function.LinearFloatFunction;
 import org.apache.solr.search.function.LiteralValueSource;
-import org.apache.solr.search.function.MaxFloatFunction;
 import org.apache.solr.search.function.MultiValueSource;
 import org.apache.solr.search.function.OrdFieldSource;
 import org.apache.solr.search.function.ProductFloatFunction;
@@ -152,14 +151,6 @@ public abstract class ValueSourceParser 
         return new LinearFloatFunction(source, slope, intercept);
       }
     });
-    addParser("max", new ValueSourceParser() {
-      @Override
-      public ValueSource parse(FunctionQParser fp) throws ParseException {
-        ValueSource source = fp.parseValueSource();
-        float val = fp.parseFloat();
-        return new MaxFloatFunction(source, val);
-      }
-    });
     addParser("recip", new ValueSourceParser() {
       @Override
       public ValueSource parse(FunctionQParser fp) throws ParseException {
@@ -503,6 +494,18 @@ public abstract class ValueSourceParser 
         return Math.atan2(a.doubleVal(doc), b.doubleVal(doc));
       }
     });
+    addParser(new Double2Parser("max") {
+      @Override
+      public double func(int doc, DocValues a, DocValues b) {
+        return Math.max(a.doubleVal(doc), b.doubleVal(doc));
+      }
+    });
+    addParser(new Double2Parser("min") {
+      @Override
+      public double func(int doc, DocValues a, DocValues b) {
+        return Math.min(a.doubleVal(doc), b.doubleVal(doc));
+      }
+    });
 
     addParser("sqedist", new ValueSourceParser() {
       @Override

Modified: lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java?rev=1127583&r1=1127582&r2=1127583&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java Wed May 25 16:55:35 2011
@@ -473,6 +473,8 @@ public class TestFunctionQuery extends S
     dofunc("deg(.5)", Math.toDegrees(.5));
     dofunc("sqrt(9)", Math.sqrt(9));
     dofunc("cbrt(8)", Math.cbrt(8));
+    dofunc("max(0,1)", Math.max(0,1));
+    dofunc("min(0,1)", Math.min(0,1));
     dofunc("log(100)", Math.log10(100));
     dofunc("ln(3)", Math.log(3));
     dofunc("exp(1)", Math.exp(1));