php[world] 2019 — 25 years of PHP

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryCharsEscapes a lucene query string

Açıklama

public static SolrUtils::escapeQueryChars ( string $str ) : string

Lucene supports escaping special characters that are part of the query syntax.

The current list special characters are:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

These characters are part of the query syntax and must be escaped

Değiştirgeler

str

This is the query string to be escaped.

Dönen Değerler

Returns the escaped string başarısızlık durumunda FALSE döner.

add a note add a note

User Contributed Notes 1 note

up
-8
Ian
5 years ago
A way of doing that with a regular expression:

<?php
// Lucene characters that need escaping with \ are + - && || ! ( ) { } [ ] ^ " ~ * ? : \
$luceneReservedCharacters = preg_quote('+-&|!(){}[]^"~*?:\\');
$query = preg_replace_callback(
   
'/([' . $luceneReservedCharacters . '])/',
    function(
$matches) {
        return
'\\' . $matches[0];
    },
   
$query);
?>
To Top