Return-Path: Delivered-To: apmail-lucene-dev-archive@www.apache.org Received: (qmail 43461 invoked from network); 14 Apr 2011 16:57:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 Apr 2011 16:57:26 -0000 Received: (qmail 20979 invoked by uid 500); 14 Apr 2011 16:57:25 -0000 Delivered-To: apmail-lucene-dev-archive@lucene.apache.org Received: (qmail 20928 invoked by uid 500); 14 Apr 2011 16:57:25 -0000 Mailing-List: contact dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list dev@lucene.apache.org Received: (qmail 20921 invoked by uid 99); 14 Apr 2011 16:57:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2011 16:57:25 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of rcmuir@gmail.com designates 209.85.161.48 as permitted sender) Received: from [209.85.161.48] (HELO mail-fx0-f48.google.com) (209.85.161.48) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2011 16:57:17 +0000 Received: by fxm7 with SMTP id 7so2278682fxm.35 for ; Thu, 14 Apr 2011 09:56:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type:content-transfer-encoding; bh=72eyXBFzWtkR8BH3xMAYb8MbauHrWwGE25V0nlHJjwg=; b=KjVsf0lrCMhqi3Ra3x3G/Smhw6DtcpyTnQn9dpovrZ7ETpcL/HDwIHYowkPAVPdRPI N4084/ZCz9CXnTCo68nJnCGFMIRWQXV5WatXNrCKMpFoXEiF1Kx/PzgfnCENggyAzLMS 4nYwWyRrW1yUeYhN0tNiIrq8QZx39XWley6dQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=rlGu54UqwYXEZqb9dQR5fNlChvPIwth+IE5wWKTJWpwza0LNL7eUpNHzKoNAakpt3z bSiwpfIVkadL0ilrtlMqOC5/wpQ5IDBar1sme0qVTObtDnTpUFIV8OWTORtb/l2BMUnN AMiPerZGXeOKxZ70NCyKUrzEU00NdPHWL6a6U= Received: by 10.223.77.4 with SMTP id e4mr1074238fak.51.1302800217082; Thu, 14 Apr 2011 09:56:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.72.149 with HTTP; Thu, 14 Apr 2011 09:56:37 -0700 (PDT) In-Reply-To: <20110412174023.0053E23888FE@eris.apache.org> References: <20110412174023.0053E23888FE@eris.apache.org> From: Robert Muir Date: Thu, 14 Apr 2011 12:56:37 -0400 Message-ID: Subject: Re: svn commit: r1091516 - in /lucene/dev/trunk/solr: CHANGES.txt src/java/org/apache/solr/search/ValueSourceParser.java src/test/org/apache/solr/search/function/TestFunctionQuery.java To: dev@lucene.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org I think this is causing tests to consistently fail (at least on windows). I opened a JIRA issue: https://issues.apache.org/jira/browse/SOLR-2468 I set the test to @ignore for now On Tue, Apr 12, 2011 at 1:40 PM, wrote: > Author: hossman > Date: Tue Apr 12 17:40:22 2011 > New Revision: 1091516 > > URL: http://svn.apache.org/viewvc?rev=3D1091516&view=3Drev > Log: > SOLR-2335: New field(...) function syntax for refering to complex field n= ames (containing whitespace or special characters) > > Modified: > =C2=A0 =C2=A0lucene/dev/trunk/solr/CHANGES.txt > =C2=A0 =C2=A0lucene/dev/trunk/solr/src/java/org/apache/solr/search/ValueS= ourceParser.java > =C2=A0 =C2=A0lucene/dev/trunk/solr/src/test/org/apache/solr/search/functi= on/TestFunctionQuery.java > > Modified: lucene/dev/trunk/solr/CHANGES.txt > URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev= =3D1091516&r1=3D1091515&r2=3D1091516&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- lucene/dev/trunk/solr/CHANGES.txt (original) > +++ lucene/dev/trunk/solr/CHANGES.txt Tue Apr 12 17:40:22 2011 > @@ -121,6 +121,8 @@ New Features > =C2=A0* SOLR-2338: Add support for using in a schema's fiel= dType, > =C2=A0 for customizing scoring on a per-field basis. (hossman, yonik, rmu= ir) > > +* SOLR-2335: New 'field("...")' function syntax for refering to complex > + =C2=A0field names (containing whitespace or special characters) in func= tions. > > =C2=A0Optimizations > =C2=A0---------------------- > > Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/ValueSour= ceParser.java > URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apac= he/solr/search/ValueSourceParser.java?rev=3D1091516&r1=3D1091515&r2=3D10915= 16&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- lucene/dev/trunk/solr/src/java/org/apache/solr/search/ValueSourcePars= er.java (original) > +++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/ValueSourcePars= er.java Tue Apr 12 17:40:22 2011 > @@ -335,6 +335,15 @@ public abstract class ValueSourceParser > =C2=A0 =C2=A0 =C2=A0 =C2=A0 return new StringDistanceFunction(str1, str2,= dist); > =C2=A0 =C2=A0 =C2=A0 } > =C2=A0 =C2=A0 }); > + =C2=A0 =C2=A0addParser("field", new ValueSourceParser() { > + =C2=A0 =C2=A0 =C2=A0@Override > + =C2=A0 =C2=A0 =C2=A0public ValueSource parse(FunctionQParser fp) throws= ParseException { > + > + =C2=A0 =C2=A0 =C2=A0 =C2=A0String fieldName =3D fp.parseArg(); > + =C2=A0 =C2=A0 =C2=A0 =C2=A0SchemaField f =3D fp.getReq().getSchema().ge= tField(fieldName); > + =C2=A0 =C2=A0 =C2=A0 =C2=A0return f.getType().getValueSource(f, fp); > + =C2=A0 =C2=A0 =C2=A0} > + =C2=A0 =C2=A0}); > > =C2=A0 =C2=A0 addParser(new DoubleParser("rad") { > =C2=A0 =C2=A0 =C2=A0 @Override > > Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/search/function/= TestFunctionQuery.java > URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apac= he/solr/search/function/TestFunctionQuery.java?rev=3D1091516&r1=3D1091515&r= 2=3D1091516&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- lucene/dev/trunk/solr/src/test/org/apache/solr/search/function/TestFu= nctionQuery.java (original) > +++ lucene/dev/trunk/solr/src/test/org/apache/solr/search/function/TestFu= nctionQuery.java Tue Apr 12 17:40:22 2011 > @@ -71,16 +71,14 @@ public class TestFunctionQuery extends S > > =C2=A0 // replace \0 with the field name and create a parseable string > =C2=A0 public String func(String field, String template) { > - =C2=A0 =C2=A0StringBuilder sb =3D new StringBuilder("_val_:\""); > + =C2=A0 =C2=A0StringBuilder sb =3D new StringBuilder("{!func}"); > =C2=A0 =C2=A0 for (char ch : template.toCharArray()) { > =C2=A0 =C2=A0 =C2=A0 if (ch=3D=3D'\0') { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 sb.append(field); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue; > =C2=A0 =C2=A0 =C2=A0 } > - =C2=A0 =C2=A0 =C2=A0if (ch=3D=3D'"') sb.append('\\'); > =C2=A0 =C2=A0 =C2=A0 sb.append(ch); > =C2=A0 =C2=A0 } > - =C2=A0 =C2=A0sb.append('"'); > =C2=A0 =C2=A0 return sb.toString(); > =C2=A0 } > > @@ -520,5 +518,38 @@ public class TestFunctionQuery extends S > =C2=A0 =C2=A0 dofunc("atan2(.25,.5)", Math.atan2(.25,.5)); > =C2=A0 } > > + =C2=A0/** > + =C2=A0 * verify that both the field("...") value source parser as well = as > + =C2=A0 * ExternalFileField work with esoteric field names > + =C2=A0 */ > + =C2=A0@Test > + =C2=A0public void testExternalFieldValueSourceParser() { > + > + =C2=A0 =C2=A0String field =3D "CoMpleX \" fieldName _extf"; > + =C2=A0 =C2=A0String fieldAsFunc =3D "field(\"CoMpleX \\\" fieldName _ex= tf\")"; > + > + =C2=A0 =C2=A0float[] ids =3D {100,-4,0,10,25,5,77,23,55,-78,-45,-24,63,= 78,94,22,34,54321,261,-627}; > + > + =C2=A0 =C2=A0createIndex(null,ids); > + > + =C2=A0 =C2=A0// Unsorted field, largest first > + =C2=A0 =C2=A0makeExternalFile(field, "54321=3D543210\n0=3D-999\n25=3D25= 0","UTF-8"); > + =C2=A0 =C2=A0// test identity (straight field value) > + =C2=A0 =C2=A0singleTest(fieldAsFunc, "\0", 54321, 543210, 0,-999, 25,25= 0, 100, 1); > + =C2=A0 =C2=A0Object orig =3D FileFloatSource.onlyForTesting; > + =C2=A0 =C2=A0singleTest(fieldAsFunc, "log(\0)"); > + =C2=A0 =C2=A0// make sure the values were cached > + =C2=A0 =C2=A0assertTrue(orig =3D=3D FileFloatSource.onlyForTesting); > + =C2=A0 =C2=A0singleTest(fieldAsFunc, "sqrt(\0)"); > + =C2=A0 =C2=A0assertTrue(orig =3D=3D FileFloatSource.onlyForTesting); > + > + =C2=A0 =C2=A0makeExternalFile(fieldAsFunc, "0=3D1","UTF-8"); > + =C2=A0 =C2=A0assertU(adoc("id", "10000")); // will get same reader if n= o index change > + =C2=A0 =C2=A0assertU(commit()); > + =C2=A0 =C2=A0singleTest(fieldAsFunc, "sqrt(\0)"); > + =C2=A0 =C2=A0assertTrue(orig !=3D FileFloatSource.onlyForTesting); > + > + =C2=A0 =C2=A0purgeFieldCache(FieldCache.DEFAULT); =C2=A0 // avoid FC in= sanity > + =C2=A0} > > =C2=A0} > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional commands, e-mail: dev-help@lucene.apache.org