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 "Zhang, Lisheng" <Li...@broadvision.com> on 2005/10/08 02:14:25 UTC

Abnormal behavior in QueryParser

Hi,

We recently encountered a strange behavior in
lucene v1.4.3 QueryParser: we call

 QueryParser.parse("-1", "myidfield", new StandardAnalyzer());

and get retured query as:

 -myidfield:1  // apparently we want "myidfield:-1"

Currently we can use TermQuery to avoid QueryParser
to bypass this problem, but still we would like to know
if this is a known problem or already fixed in later version?

Thanks very much for helps, Lisheng

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


Re: Abnormal behavior in QueryParser

Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Oct 7, 2005, at 8:14 PM, Zhang, Lisheng wrote:
> We recently encountered a strange behavior in
> lucene v1.4.3 QueryParser: we call
>
>  QueryParser.parse("-1", "myidfield", new StandardAnalyzer());
>
> and get retured query as:
>
>  -myidfield:1  // apparently we want "myidfield:-1"
>
> Currently we can use TermQuery to avoid QueryParser
> to bypass this problem, but still we would like to know
> if this is a known problem or already fixed in later version?

This behavior is entirely by design.  The - and + operators are for  
prohibiting and requiring clauses, as an integral part of the query  
expression language.  The - can be escaped as in "\-1", though maybe  
QueryParser is not appropriate for your situation.

     Erik


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