You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by "Shah, Vineel" <vi...@hotjobs.com> on 2003/03/28 23:48:26 UTC

Alternate Boolean Query Parser?

One of my clients is asking for an old-style boolean query search on my keywords fields. A string might look like this:

	"oracle admin*" and java and oracle and ("8.1.6" or "8.1.7") and ("solaris" or "unix" or "linux")

There would probably be need for nested parenthesis, although I can't think of an example. Is there a parser I can plug into lucene to make this happen? It doesn't seem like the normal QueryParser class would like this string, or would it? Any ideas or comments would be appreciated. Making my own
grammar and parser class is too expensive a proposition.

Vineel Shah


Re: Alternate Boolean Query Parser?

Posted by Tatu Saloranta <ta...@hypermall.net>.
On Friday 28 March 2003 15:48, Shah, Vineel wrote:
> One of my clients is asking for an old-style boolean query search on my
> keywords fields. A string might look like this:
>
> 	"oracle admin*" and java and oracle and ("8.1.6" or "8.1.7") and
> ("solaris" or "unix" or "linux")
>
> There would probably be need for nested parenthesis, although I can't think
> of an example. Is there a parser I can plug into lucene to make this
> happen? It doesn't seem like the normal QueryParser class would like this
> string, or would it? Any ideas or comments would be appreciated. Making my

Actually I think it should, as long as you change 'and' to 'AND' and 'or' to 
'OR' (upper case versions are used, I think, to make it less likely user 
meant to match words 'and' and 'or'?).

> own grammar and parser class is too expensive a proposition.

Well, writing simple grammar and parser is fairly easy to do, if you've ever 
used java_cup or javacc (or just (b)yacc / bison), shouldn't take all that 
long since all actual query classes already exist. But I don't think you need 
to do even that. :-)

The only feature that might need some additional work is matching "oracle 
admin*"; PhrasePrefixQuery allows doing something like that, but it's not 
integrated with QueryParser (I think it probably should, and might be quite 
easy to do).

-+ Tatu +-


---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org