Thanx for reply Miles So, avoiding leading wildcard query was design decision for sake of efficiency. Thanx for information.
On 7/28/06, Miles Barr <[EMAIL PROTECTED]> wrote:
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 > > http://wiki.apache.org/jakarta-lucene/LuceneFAQ#head-4d62118417eaef0dcb87f4370583f809848ea695 > > > 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. Miles --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Regards, Pravin Shinde --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]