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 2013/12/13 07:42:38 UTC

svn commit: r1550657 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/queries/ lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ solr/ solr/core/ solr/core/src/java/org/apache/solr/search/ solr/core/src/test/org/apache/solr/...

Author: shalin
Date: Fri Dec 13 06:42:38 2013
New Revision: 1550657

URL: http://svn.apache.org/r1550657
Log:
SOLR-3702: A 'concat' function query to support concatenation of Strings

Added:
    lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ConcatenateFunction.java
      - copied unchanged from r1550656, lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ConcatenateFunction.java
Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/queries/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/CHANGES.txt
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java

Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1550657&r1=1550656&r2=1550657&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Fri Dec 13 06:42:38 2013
@@ -91,6 +91,9 @@ New Features
 
 * SOLR-5522: Remove EditFileRequestHandler from 4x (Erick Erickson)
 
+* SOLR-3702: A 'concat' function query to support concatenation of Strings.
+  (Ted Strauss, Andrey Kudryavtsev via shalin)
+
 Bug Fixes
 ----------------------
 

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java?rev=1550657&r1=1550656&r2=1550657&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java Fri Dec 13 06:42:38 2013
@@ -779,6 +779,13 @@ public abstract class ValueSourceParser 
       }
     });
 
+    addParser("concat", new ValueSourceParser() {
+      @Override
+      public ValueSource parse(FunctionQParser fp) throws SyntaxError {
+        return new ConcatenateFunction(fp.parseValueSourceList());
+      }
+    });
+
   }
 
   private static TInfo parseTerm(FunctionQParser fp) throws SyntaxError {

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java?rev=1550657&r1=1550656&r2=1550657&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java Fri Dec 13 06:42:38 2013
@@ -756,4 +756,24 @@ public class TestFunctionQuery extends S
     }
   }
 
+  public void testConcatFunction() {
+    clearIndex();
+
+    assertU(adoc("id", "1", "field1_t", "buzz", "field2_t", "word"));
+    assertU(adoc("id", "2", "field1_t", "1", "field2_t", "2","field4_t", "4"));
+    assertU(commit());
+
+    assertQ(req("q","id:1",
+        "fl","field:concat(field1_t,field2_t)"),
+        " //str[@name='field']='buzzword'");
+
+    assertQ(req("q","id:2",
+        "fl","field:concat(field1_t,field2_t, field3_t, field4_t)"),
+        " //str[@name='field']='124'");
+
+    assertQ(req("q","id:1",
+        "fl","field:def(concat(field3_t, field4_t), 'defValue')"),
+        " //str[@name='field']='defValue'");
+  }
+
 }