Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Lucene: Java-User

Re: QueryParser error + solution

 

 

Lucene java-user RSS feed   Index | Next | Previous | View Threaded


sun_miki at hotmail

Apr 4, 2006, 4:29 AM

Post #1 of 4 (469 views)
Permalink
Re: QueryParser error + solution

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 <erik [at] ehatchersolutions>
Reply-To: java-user [at] lucene
To: java-user [at] lucene
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 <mbarry [at] cos>
>>Reply-To: java-user [at] lucene
>>To: java-user [at] lucene
>>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: java-user-unsubscribe [at] lucene
>>For additional commands, e-mail: java-user-help [at] lucene
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
>For additional commands, e-mail: java-user-help [at] lucene


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene


erik at ehatchersolutions

Apr 4, 2006, 5:58 AM

Post #2 of 4 (416 views)
Permalink
Re: QueryParser error + solution [In reply to]

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 <erik [at] ehatchersolutions>
> Reply-To: java-user [at] lucene
> To: java-user [at] lucene
> 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 <mbarry [at] cos>
>>> Reply-To: java-user [at] lucene
>>> To: java-user [at] lucene
>>> 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: java-user-unsubscribe [at] lucene
>>> For additional commands, e-mail: java-user-help [at] lucene
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
>> For additional commands, e-mail: java-user-help [at] lucene
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
> For additional commands, e-mail: java-user-help [at] lucene
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
> For additional commands, e-mail: java-user-help [at] lucene


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene


daniel at nuix

Apr 4, 2006, 9:26 PM

Post #3 of 4 (431 views)
Permalink
Re: QueryParser error + solution [In reply to]

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:
>
[snip]

Something like this?

String str = "Really bad query string: lots of evil stuff!";
str = QueryParser.escape(str);

Daniel

--
Daniel Noll

Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699
Web: http://www.nuix.com.au/ Fax: +61 2 9212 6902

This message is intended only for the named recipient. If you are not
the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this
message or attachment is strictly prohibited.

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene


sun_miki at hotmail

Apr 5, 2006, 10:55 AM

Post #4 of 4 (405 views)
Permalink
Re: QueryParser error + solution [In reply to]

Daniel you are very clever! Your solution remind me this:
No temptation has overtaken you but such as is common to man; and God is
faithful, who will not allow you to be tempted beyond what you are able, but
with the temptation will provide the way of escape also, so that you will be
able to endure it.
1 Corinthians 10:13 (New American Standard Version)

Well done Erik!


----Original Message Follows----
From: Daniel Noll <daniel [at] nuix>
Reply-To: java-user [at] lucene
To: java-user [at] lucene
Subject: Re: QueryParser error + solution
Date: Wed, 05 Apr 2006 14:26:20 +1000

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:
>
[snip]

Something like this?

String str = "Really bad query string: lots of evil stuff!";
str = QueryParser.escape(str);

Daniel

--
Daniel Noll

Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699
Web: http://www.nuix.com.au/ Fax: +61 2 9212 6902

This message is intended only for the named recipient. If you are not
the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this
message or attachment is strictly prohibited.

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
For additional commands, e-mail: java-user-help [at] lucene

Lucene java-user RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.