Each of the characters you identified are characters that have meaning
to the query parser, '+' is a mandatory clause, '-' is a NOT operator
and * is a wildcard. To get through the query parser, these (and a
bunch of others, see below) must be escaped.

Personally, though, I'd pre-scrub the data. Depending on your analysis
chain such things may be thrown away anyway.

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser
- the "escaping special characters" bit.

Best,
Erick

On Thu, May 7, 2015 at 11:28 PM, Madhav Bahuguna
<madhav.bahug...@gmail.com> wrote:
> So my solr query is implemented in two parts,first query does an exact
> search if there are no results found for exact then it goes to the second
> query that does a fuzzy search.
> every things works fine but in situations like-->A user enters "burg +"
> So in exact search no records will come,so second query is called to do a
> fuzzy search.Now comes the problem my fuzzy query does not understand
> special characters like +,-* which throws and error.If i dont pass special
> characters it works fine.  But in real world a user can put characters with
> their search,which will throw an error.
> Now iam stuck in this and dont know how to resolve this issue.
> This is how my exact search query looks like
>
>     $query1="(business_name:$data*^100 OR city_name:$data*^1 OR
>     locality_name:$data*^6 OR business_search_tag_name:$data*^8 OR
>     type_name:$data*^7) AND (business_active_flag:1) AND
>     (business_visible_flag:1) AND (delete_status_businessmasters:0)";
>
> This is how my fuzzy query looks like
>
>
> $query2='(_query_:%20"{!complexphrase%20qf=business_name^100+type_name^0.4+locality_name^6%27}%20'.$url_new.')AND(business_active_flag:1)AND(business_point:[1.5
> TO 2.0])&q.op=AND&wt=json&indent=true';
>
> Iam new to solr and dont know how to tackle this situation.
>
> Details
> Solrphpclient
> php
> solr 4.9
>
>
> --
> Regards
> Madhav Bahuguna

Reply via email to