lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doron Cohen <>
Subject Re: QueryParser oddity with PrefixQuery
Date Mon, 26 Feb 2007 20:51:34 GMT
I agree, might be a redundant check now. This test was added when the query
parser was enhanced to optionally allow leading wild card (revision 468291
but this case calls getWildCardQuery(), not getPrefixQuery().

Still, the check seems harmless - sort of defensive - protecting against
case that a bug in query parser would identify such a query as prefix
than wildcard (although this is not very likely.)


Antony Bowesman wrote:

> In certain cases, I use a modified QueryParser which does not allow
> syntax.  While testing variants of Prefix and Wildcard Query, I
cameacross an
> oddity with getPrefixQuery().  The standard getPrefixQuery() (2.1) is
> termStr without the trailing *, so the check
> if (!allowLeadingWildcard && termStr.startsWith("*"))
>    throw new ParseException("'*' not allowed as first character in
> PrefixQuery");
> only triggers if you parse the String "**", in which case the PrefixQuery
> then created with Term(field, "*"); whereas if you parse "*",
> getWildcardQuery()
> is called.
> So it's not obvious that the test "termStr.startsWith("*"))" can
> ever occur, so
> this code seems redundant.
> After Doron's latest patch
> , if
> you parse "**" it now calls getWildcardQuery().
> Antony

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message