
erik at ehatchersolutions
Apr 4, 2006, 5:58 AM
Post #2 of 4
(416 views)
Permalink
|
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
|