Return-Path: Delivered-To: apmail-jakarta-lucene-dev-archive@www.apache.org Received: (qmail 43618 invoked from network); 22 May 2004 17:34:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 22 May 2004 17:34:37 -0000 Received: (qmail 46731 invoked by uid 500); 22 May 2004 17:34:35 -0000 Delivered-To: apmail-jakarta-lucene-dev-archive@jakarta.apache.org Received: (qmail 46698 invoked by uid 500); 22 May 2004 17:34:34 -0000 Mailing-List: contact lucene-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Lucene Developers List" Reply-To: "Lucene Developers List" Delivered-To: mailing list lucene-dev@jakarta.apache.org Received: (qmail 46673 invoked by uid 500); 22 May 2004 17:34:34 -0000 Received: (qmail 46630 invoked by uid 98); 22 May 2004 17:34:33 -0000 Received: from ehatcher@apache.org by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(209.237.227.194):. Processed in 0.08446 secs); 22 May 2004 17:34:33 -0000 X-Qmail-Scanner-Mail-From: ehatcher@apache.org via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(209.237.227.194):. Processed in 0.08446 secs) Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by hermes.apache.org with SMTP; 22 May 2004 17:34:33 -0000 Received: (qmail 43590 invoked by uid 1419); 22 May 2004 17:34:31 -0000 Date: 22 May 2004 17:34:31 -0000 Message-ID: <20040522173431.43589.qmail@minotaur.apache.org> From: ehatcher@apache.org To: jakarta-lucene-cvs@apache.org Subject: cvs commit: jakarta-lucene/src/java/org/apache/lucene/queryParser QueryParser.jj QueryParser.java X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ehatcher 2004/05/22 10:34:31 Modified: . CHANGES.txt src/java/org/apache/lucene/queryParser QueryParser.jj QueryParser.java Log: enhancement to QueryParser to allow slop factor passed to a new getFieldQuery method Revision Changes Path 1.88 +9 -2 jakarta-lucene/CHANGES.txt Index: CHANGES.txt =================================================================== RCS file: /home/cvs/jakarta-lucene/CHANGES.txt,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- CHANGES.txt 20 May 2004 17:16:56 -0000 1.87 +++ CHANGES.txt 22 May 2004 17:34:31 -0000 1.88 @@ -11,6 +11,13 @@ 2. Added new class FieldCache to manage in-memory caches of field term values. (Tim Jones) + 3. Added overloaded getFieldQuery method to QueryParser which + accepts the slop factor specified for the phrase (or the default + phrase slop for the QueryParser instance). This allows overriding + methods to replace a PhraseQuery with a SpanNearQuery instead, + keeping the proper slop factor. (Erik Hatcher) + + 1.4 RC3 1. Fixed several search bugs introduced by the skipTo() changes in @@ -265,7 +272,7 @@ 7. Modified QueryParser to make it possible to programmatically specify the default Boolean operator (OR or AND). - (P�ter Hal�csy via otis) + (P�ter Hal�csy via otis) 8. Made many search methods and classes non-final, per requests. This includes IndexWriter and IndexSearcher, among others. 1.43 +27 -5 jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.jj Index: QueryParser.jj =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.jj,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- QueryParser.jj 24 Mar 2004 10:12:27 -0000 1.42 +++ QueryParser.jj 22 May 2004 17:34:31 -0000 1.43 @@ -285,6 +285,26 @@ } /** + * Base implementation delegates to {@link #getFieldQuery(String,Analyzer,String)}. + * This method may be overridden, for example, to return + * a SpanNearQuery instead of a PhraseQuery. + * + * @exception ParseException throw in overridden method to disallow + */ + protected Query getFieldQuery(String field, + Analyzer analyzer, + String queryText, + int slop) throws ParseException { + Query query = getFieldQuery(field, analyzer, queryText); + + if (query instanceof PhraseQuery) { + ((PhraseQuery) query).setSlop(slop); + } + + return query; + } + + /** * @exception ParseException throw in overridden method to disallow */ protected Query getRangeQuery(String field, @@ -655,15 +675,17 @@ [ slop= ] [ boost= ] { - q = getFieldQuery(field, analyzer, - term.image.substring(1, term.image.length()-1)); - if (slop != null && q instanceof PhraseQuery) { + int s = phraseSlop; + + if (slop != null) { try { - int s = Float.valueOf(slop.image.substring(1)).intValue(); - ((PhraseQuery) q).setSlop(s); + s = Float.valueOf(slop.image.substring(1)).intValue(); } catch (Exception ignored) { } } + q = getFieldQuery(field, analyzer, + term.image.substring(1, term.image.length()-1), + s); } ) { 1.11 +27 -5 jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.java Index: QueryParser.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- QueryParser.java 3 Mar 2004 12:07:13 -0000 1.10 +++ QueryParser.java 22 May 2004 17:34:31 -0000 1.11 @@ -262,6 +262,26 @@ } /** + * Base implementation delegates to {@link #getFieldQuery(String,Analyzer,String)}. + * This method may be overridden, for example, to return + * a SpanNearQuery instead of a PhraseQuery. + * + * @exception ParseException throw in overridden method to disallow + */ + protected Query getFieldQuery(String field, + Analyzer analyzer, + String queryText, + int slop) throws ParseException { + Query query = getFieldQuery(field, analyzer, queryText); + + if (query instanceof PhraseQuery) { + ((PhraseQuery) query).setSlop(slop); + } + + return query; + } + + /** * @exception ParseException throw in overridden method to disallow */ protected Query getRangeQuery(String field, @@ -770,15 +790,17 @@ jj_la1[20] = jj_gen; ; } - q = getFieldQuery(field, analyzer, - term.image.substring(1, term.image.length()-1)); - if (slop != null && q instanceof PhraseQuery) { + int s = phraseSlop; + + if (slop != null) { try { - int s = Float.valueOf(slop.image.substring(1)).intValue(); - ((PhraseQuery) q).setSlop(s); + s = Float.valueOf(slop.image.substring(1)).intValue(); } catch (Exception ignored) { } } + q = getFieldQuery(field, analyzer, + term.image.substring(1, term.image.length()-1), + s); break; default: jj_la1[21] = jj_gen; --------------------------------------------------------------------- To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: lucene-dev-help@jakarta.apache.org