CakeFest 2024: The Official CakePHP Conference

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryCharsEscapes a lucene query string

Descrição

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

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

Parâmetros

str

This is the query string to be escaped.

Valor Retornado

Returns the escaped string ou false em caso de falha.

add a note

User Contributed Notes 1 note

up
-8
Ian
10 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