How about a pre-pended search component to un-escape Q and put it into
QClean or some such. Then, your other parsers could use the other
variable name as needed?

Would that work?

Regards,
   Alex.
Personal: http://www.outerthoughts.com/ and @arafalov
Solr resources and newsletter: http://www.solr-start.com/ and @solrstart
Solr popularizers community: https://www.linkedin.com/groups?gid=6713853


On 15 December 2014 at 11:05, Doug Turnbull
<dturnb...@opensourceconnections.com> wrote:
> Hello all,
>
> I've been working on a search project that has a lot of special characters
> in text (its programming language content). We use edismax as a base query
> parser, but will use other query parsers in boost queries (such as field or
> a custom query parser).
>
> For example, we might have
>
> q=c\+\+&
> bq={!field f=someField v=$q}&
> defType=edismax
>
> Notice how I escape the "+" in C++ so that edismax will not interpret the +
> as part of a lucene query.
>
> My problem is when other query parsers that don't need lucene syntax
> escaped, they see query text with escape slashes. So the field query parser
> attempts to search for "c\+\+". This makes sense as I'm setting v to the
> value of $q.
>
> I'm not sure quite how to solve this problem. Ideally I could see--
>
> (a) A way to get the edismax (or any other) query parser to communicate
> that q is actually some escaped piece of text?
> (b) A way to trick the receiving query parser into escaping?
>
> Or am I just best not using parameterized queries, and instead should I
> force the burden onto the client to send:
>
> bq={!field f=someField}c++
>
> Any ideas on clean ways to solve this problem?
>
> Thanks,
> --
> Doug Turnbull
> Search & Big Data Architect
> OpenSource Connections <http://o19s.com>

Reply via email to