If you're going to escape all the special characters used as operators in the query expression, then what is the point of using QueryParser? Seems like you could just tokenize the text yourself and build a Query instance via API to support your needs. Do you need to leverage any special operators of QueryParser? Or are you just using it to take a string of words and turn it into a BooleanQuery?

        Erik


On Apr 4, 2006, at 7:29 AM, miki sun wrote:

Thanks Erik and Michael!

I copied some code from demo.SearchFiles.java, I do not have a more clearer tracing message. Now it works.

But do you have a better way than this:

//escaping special chars for query parser
for (int i = 0; i < qr.length(); i ++)
{
if( (qr.charAt(i) == '+') ||(qr.charAt(i) == '-')
        ||(qr.charAt(i) == '&')||(qr.charAt(i) == '~')
        ||(qr.charAt(i) == '|')|| (qr.charAt(i) == '!')
        ||(qr.charAt(i) == '[')||(qr.charAt(i) == ']')
        ||(qr.charAt(i) == '(')||(qr.charAt(i) == ')')
        ||(qr.charAt(i) == '{')||(qr.charAt(i) == '}')
        ||(qr.charAt(i) == '^')||(qr.charAt(i) == '"')
        ||(qr.charAt(i) == '*')||(qr.charAt(i) == '?')
        ||(qr.charAt(i) == ':')||(qr.charAt(i) == '\\') )
        theQueries += "\\" + qr.charAt(i);
else
        theQueries += qr.charAt(i) ;
}



----Original Message Follows----
From: Erik Hatcher <[EMAIL PROTECTED]>
Reply-To: java-user@lucene.apache.org
To: java-user@lucene.apache.org
Subject: Re: QueryParser error
Date: Tue, 4 Apr 2006 07:01:41 -0400

Miki hasn't posted a complete stack trace, and if the NPE is coming from QueryParser it would likely give stack trace information pinpointing precisely where the issue is. My hunch is some other code is obfuscating the real issue. A complete stack trace would be much more helpful.

        Erik


On Apr 4, 2006, at 6:55 AM, Michael Barry wrote:

Exclamation point too ... check out the "Escaping Special Characters"
section in the QueryParser syntax guide (http://lucene.apache.org/ java/docs/queryparsersyntax.html)

miki sun wrote:
Still got error even without colon:

Error in parse query :The light of the body is the eye if therefore thine eye be single, thy whole body shall be full of light. But if thine eye be evil, thy whole body shall be full of darkness. If therefore the light that is in thee be darkness, how great is that darkness!

java.lang.NullPointerException



----Original Message Follows----
From: Michael Barry <[EMAIL PROTECTED]>
Reply-To: java-user@lucene.apache.org
To: java-user@lucene.apache.org
Subject: Re: QueryParser error
Date: Tue, 04 Apr 2006 06:44:02 -0400

You need to escape the colons.

miki sun wrote:
Hi there

Who can tell me why I got the the queryParser error for the following query:

Error in parse query :The light of the body is the eye: if therefore thine eye be single, thy whole body shall be full of light. But if thine eye be evil, thy whole body shall be full of darkness. If therefore the light that is in thee be darkness, how great is that darkness!
java.lang.NullPointerException

Appart from [, ], (, ), whatelse should be exculded in the query?

Thanks

Miki



-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to