One more thing:

The hack that you commented when the query is a combination of restricted query 
operators such +-, +++++, --++--+%, etc? In this cases the application has to 
deal with all this cases to.

Greetings!

----- Mensaje original -----
De: "Jérôme Étévé" <jerome.et...@gmail.com>
Para: solr-user@lucene.apache.org
Enviados: Martes, 23 de Abril 2013 10:44:39
Asunto: Re: Querying only for "+" character causes 
org.apache.lucene.queryParser.ParseException

If you want to allow your users to search for '+' , you also define your
'+' as being a regular ALPHA characters:

In config:

delimiter_types.txt:

#
# We let +, # and * be part of normal words.
# This is to let c++, c#, c* and R&D as words.
#
+ => ALPHA
 # => ALPHA
* => ALPHA
& => ALPHA
@ => ALPHA

Then in your solr.WordDelimiterFilterFactory,
use types="delimiter_types.txt"


You'll then be able to let your users search for + as part of a word.

If you want to allow them to search for just '+' , a little hacking is
necessary in your client code. Personally, I just  double quote the query
if it's only one char length. Can't be harmful and as it will turn your
single + into "+" , it will be considered as a token (rather than being
part of the query syntax) by the parser.

Providing you're using the edismax parser, it should be just fine for any
other queries, like '+ foo' , 'foo +', '++' ...


J.


On 23 April 2013 15:09, Jorge Luis Betancourt Gonzalez
<jlbetanco...@uci.cu>wrote:

> Hi Kai:
>
> Thanks for your reply, for what I've understood this logic must be
> included in my application, It would be possible to, for instance, use some
> regular expression at querying time in my schema to avoid a query that
> contains only this characters? for instance + and +++++ would be a good
> catch to avoid.
>
> Thanks in advance!
>
> ----- Mensaje original -----
> De: "Kai Becker" <m...@kai-becker.com>
> Para: solr-user@lucene.apache.org
> Enviados: Martes, 23 de Abril 2013 9:48:26
> Asunto: Re: Querying only for "+" character causes
> org.apache.lucene.queryParser.ParseException
>
> Hi,
>
> you need to escape that char in search terms.
> Special chars are + - ! ( ) { } [ ] ^ " ~ * ? : \ / at the moment.
>
> The %2B is just the url encoding, but it will still be a + for Solr, so
> just put a \ in front of the chars I mentioned.
>
> Cheers,
> Kai
>
> Am 23.04.2013 um 15:41 schrieb Jorge Luis Betancourt Gonzalez:
>
> > Hi!
> >
> > Currently I'm working on a basica search engine for, the main problem is
> that during some tests a problem was detected, in the application if a user
> search for the "+" or "-" term only or the "+++++" string it causes an
> exception in my application, the problem is caused for an
> org.apache.lucene.queryParser.ParseException in solr. I get the same
> response if, from the solr admin interface, I search for the + term. For
> what I've seen the "+" character gets encoded into "%2B" which cause the
> exception. Is there any way of escaping this character so they behave like
> any other character? or at least get no response for this cases?
> >
> > I'm using solr 3.6.2, deployed in tomcat7.
> >
> > Greetings!
> > http://www.uci.cu
>
> http://www.uci.cu
> http://www.uci.cu
>



--
Jerome Eteve
+44(0)7738864546
http://www.eteve.net/

http://www.uci.cu
http://www.uci.cu

Reply via email to