lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Miles Barr <>
Subject Re: Leading wildcard query
Date Fri, 28 Jul 2006 10:14:13 GMT
Pravin Shinde wrote:

> I am trying to use Leading wildcard query, but I am not able to do it.
> Any query with leading wildcard is failing with lexical error.
> query = parser.parse( "*hi" )
> JavaError: org.apache.lucene.queryParser.ParseException:
> Lexical error at line 1, column 1.  Encountered: "*" (42), after : ""
> I came across some documentation in Lucene FAQ which says

> Note: Leading wildcards (e.g. *ook) are not supported by the
> QueryParser (although Lucene could handle them -- see the comment in
> QueryParser.jj to enable these kind of queries -- search for "OG: to
> support prefix queries:").
> Is there any way I can do Leading wildchard query ? 

You could implement something, but it would have to be done differently 
to how wildcard queries are currently done. A wildcard query expands to 
match all possible tokens that match that pattern currently in the index 
(restricted to that field). I think the way the index is set up makes it 
possible to build this list when you know at least the first character. 
By starting with a * you need to get the complete list of tokens, then 
filter out those that don't match. I imagine this would be quite slow, 
hence why it's not in Lucene at the moment.


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

View raw message