Return-Path: Delivered-To: apmail-lucene-java-user-archive@www.apache.org Received: (qmail 91476 invoked from network); 5 Nov 2010 15:52:55 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Nov 2010 15:52:55 -0000 Received: (qmail 73654 invoked by uid 500); 5 Nov 2010 15:53:24 -0000 Delivered-To: apmail-lucene-java-user-archive@lucene.apache.org Received: (qmail 73581 invoked by uid 500); 5 Nov 2010 15:53:24 -0000 Mailing-List: contact java-user-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-user@lucene.apache.org Delivered-To: mailing list java-user@lucene.apache.org Received: (qmail 73573 invoked by uid 99); 5 Nov 2010 15:53:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Nov 2010 15:53:24 +0000 X-ASF-Spam-Status: No, hits=0.7 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [85.25.71.29] (HELO mail.troja.net) (85.25.71.29) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Nov 2010 15:53:16 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.troja.net (Postfix) with ESMTP id 5653CD36005 for ; Fri, 5 Nov 2010 16:52:56 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mail.troja.net Received: from mail.troja.net ([127.0.0.1]) by localhost (megaira.troja.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wY-dgyWjAy3k for ; Fri, 5 Nov 2010 16:52:53 +0100 (CET) Received: from VEGA (port-83-236-62-54.dynamic.qsc.de [83.236.62.54]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.troja.net (Postfix) with ESMTPSA id 71B37D36004 for ; Fri, 5 Nov 2010 16:52:53 +0100 (CET) From: "Uwe Schindler" To: References: <5211613.69517.1288970336555.JavaMail.root@morpheus> <26636555.69547.1288970743847.JavaMail.root@morpheus> In-Reply-To: <26636555.69547.1288970743847.JavaMail.root@morpheus> Subject: RE: RangeQuery with multiple ranges ? Date: Fri, 5 Nov 2010 16:52:58 +0100 Message-ID: <008b01cb7d01$84dbd5b0$8e938110$@thetaphi.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-index: AQKjObWddhmKK2Yvwu9ZpvSC6h4855Gzjpmg Content-language: de X-Virus-Checked: Checked by ClamAV on apache.org Why do you use such complicated stuff to build the BQ? Term term1 =3D new Term(LuceneIndexField.SCALE, "10000"); Term term2 =3D new Term(LuceneIndexField.SCALE, "50000"); BooleanQuery bq =3D new BooleanQuery(); bq.add(new RangeQuery(term1, term1, true), BooleanClause.Occur.SHOULD);=20 bq.add(new RangeQuery(term2, term2, true), BooleanClause.Occur.SHOULD); By the way, your code is outdated, you should better use = NumericRangeQuery for numerics! Else RangeQuery is deprecated and = replaced by TermRangeQuery: String term1 =3D "10000", term2 =3D "50000"; BooleanQuery bq =3D new BooleanQuery(); bq.add(new TermRangeQuery(LuceneIndexField.SCALE, term1, term1, true, = true), BooleanClause.Occur.SHOULD);=20 bq.add(new TermRangeQuery(LuceneIndexField.SCALE, term2, term2, true, = true), BooleanClause.Occur.SHOULD); Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: uwe@thetaphi.de > -----Original Message----- > From: Alain Camus [mailto:aca@ngi.be] > Sent: Friday, November 05, 2010 4:26 PM > To: java-user@lucene.apache.org > Subject: RangeQuery with multiple ranges ? >=20 > Hello list, >=20 > I'm new to lucene, trying to find out if this is possible : >=20 > In Luke, I can write a query that gets me the results I want, that is = : > +denominator:([10000 TO 10000] OR [20000 TO 20000]) >=20 > I'd like to write the same in java. I tried the next code but it = doesn't work : > BooleanClause.Occur scaleOccur =3D > LuceneUtils.convertRequiredAndProhibitedToOccur(true, false); > Term term1 =3D new Term(LuceneIndexField.SCALE, "10000"); > Term term2 =3D new Term(LuceneIndexField.SCALE, "50000"); > RangeQuery rangeQuery1 =3D new RangeQuery(term1, term1, true); > RangeQuery rangeQuery2 =3D new RangeQuery(term2, term2, true); > BooleanQuery booleanQuery =3D new BooleanQuery(); > booleanQuery .setMinimumNumberShouldMatch(1); > booleanQuery .add(rangeQuery1, scaleOccur); > booleanQuery .add(rangeQuery2, scaleOccur); > BooleanClause scaleRangeClause =3D new BooleanClause(bq, scaleOccur); > query.add(scaleRangeClause); > The resulting query doesn't give me the expected results : > +((+denominator:[10000 TO 10000] +denominator:[50000 TO 50000])~1) >=20 > Is it possible to do what I want ? Any documentation I could read = about this ? >=20 > Alain --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org For additional commands, e-mail: java-user-help@lucene.apache.org