From: Swami K. <swa...@gm...> - 2010-04-22 14:15:04
|
Hi Roy, But that filter removes all the useful stuff in the lucene query syntax ! (^,*, ?, ~ etc...) I just want to remove the characters which will cause a parsing error... Kind Regards Swami Roy Walter-2 wrote: > > The eXist docs show this filter: > > let $filtered-q := replace($q, > "[&"-*;-`~!@#$%^*()_+-=\[\]\{\}\|';:/.,?(:]", "") > > -- Roy > > > Swami Kevala wrote: >> Actually, I want the users to be able to enter lucene queries (using the >> lucene query syntax), directly into the search textbox... I wanted to >> avoid >> having to re-parse the query into the xml format. >> >> So I guess the best option is just to see which characters generate >> parsing >> errors, and then strip out those chars first... >> >> >> >> Jacob Myers-3 wrote: >> >>> There are quite a few others you should watch out for too. As I recall >>> ft:query takes a lucene query syntax query: >>> http://lucene.apache.org/java/2_9_2/queryparsersyntax.html for more >>> (^, ~, *, +, etc) >>> >>> According to the docs at http://www.exist-db.org/lucene.html#N10352 >>> ft:query can also take an xml query description. If you arn't >>> expecting your users to be inputting lucene style queries you might >>> consider just wrapping up your query as the xml type (as a series of >>> terms probably) and passing that in. The docs indicate it is similar >>> to lucene's api, so I assume that means it will bypass the lucene >>> query parser, allowing characters like : and \ again. >>> >>> Jacob Myers >>> >>> On Wed, Apr 21, 2010 at 11:02 PM, Joe Wicentowski <jo...@gm...> >>> wrote: >>> >>>> Hi Swami, >>>> >>>> I'd suggest parsing the query string to remove offending characters, >>>> e.g. >>>> >>>> let $sanitized-query := replace($orig-query, '[\:]', '') >>>> >>>> I think you will find in the Lucene query docs that there are certain >>>> reserved characters; for example, ':' is used to demarcate fielded >>>> searches. >>>> >>>> Cheers, >>>> Joe >>>> >>>> >>>> On Apr 21, 2010, at 10:11 PM, Swami Kevala <swa...@gm...> >>>> wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> I have an application which allows users to search text by entering >>>>> queries >>>>> in a textbox. If, by mistake, they enter a ":" or a "\" character, >>>>> then a >>>>> scary error page is displayed. Is there a way that these errors can be >>>>> suppressed, and the query can simply return no results if the query is >>>>> malformed >>>>> >>>>> Kind Regards >>>>> >>>>> Swami >>>>> -- >>>>> View this message in context: >>>>> http://old.nabble.com/suppress-lucene-parse-errors-tp28323506p28323506.html >>>>> Sent from the exist-open mailing list archive at Nabble.com. >>>>> >>>>> >>>>> --- >>>>> --- >>>>> --- >>>>> --------------------------------------------------------------------- >>>>> _______________________________________________ >>>>> Exist-open mailing list >>>>> Exi...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/exist-open >>>>> >>>> ------------------------------------------------------------------------------ >>>> _______________________________________________ >>>> Exist-open mailing list >>>> Exi...@li... >>>> https://lists.sourceforge.net/lists/listinfo/exist-open >>>> >>>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> Exist-open mailing list >>> Exi...@li... >>> https://lists.sourceforge.net/lists/listinfo/exist-open >>> >>> >>> >> >> > > ------------------------------------------------------------------------------ > _______________________________________________ > Exist-open mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-open > > -- View this message in context: http://old.nabble.com/suppress-lucene-parse-errors-tp28323506p28329481.html Sent from the exist-open mailing list archive at Nabble.com. |