In the PHP client I used these:

<pre>
        /**
* Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
         *
* NOTE: inside a phrase fewer characters need escaped, use [EMAIL PROTECTED] Apache_Solr_Service::escapePhrase()} instead
         *
         * @param string $value
         * @return string
         */
        static public function escape($value)
        {
//list taken from http://lucene.apache.org/java/docs/ queryparsersyntax.html#Escaping%20Special%20Characters
                $pattern = 
'/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
                $replace = '\\\$1';

                return preg_replace($pattern, $replace, $value);
        }

        /**
* Escape a value meant to be contained in a phrase for special query characters
         *
         * @param string $value
         * @return string
         */
        static public function escapePhrase($value)
        {
                $pattern = '/("|\\\)/';
                $replace = '\\\$1';

                return preg_replace($pattern, $replace, $value);
        }
</pre>

helpful?

On Aug 5, 2008, at 4:16 PM, Ryan McKinley wrote:

That came after I spent a week increasing the list of things that need escaped one at a time (waiting for errors along the way...)

Erik suggested I look at how the ruby client handles it... and I haven't seen any problem since them.

Is there any problem with over escaping? I know it makes some things look funny. Perhaps there is a regex that will do any non- letter except

ryan


On Aug 5, 2008, at 8:28 AM, Grant Ingersoll wrote:

ClientUtils.escapeQueryChars seems a bit aggressive to me in terms of what it escapes. It references http://lucene.apache.org/java/ docs/queryparsersyntax.html#Escaping Special Characters, but doesn't explicitly escape them, instead opting for the more general \W regex. Thus, I'm noticing that chars that don't need to be escaped ( like / ) are being escaped.

Anyone recall why this is? I suppose the problem comes in when one considers other query parsers, but maybe we should just mark this one as explicitly for use w/ the Lucene QP?

-Grant


Reply via email to