一种使用正则表达式的实现方式
<?php
// 需要用 \ 转义的 Lucene 字符: + - && || ! ( ) { } [ ] ^ " ~ * ? : \
$luceneReservedCharacters = preg_quote('+-&|!(){}[]^"~*?:\\');
$query = preg_replace_callback(
'/([' . $luceneReservedCharacters . '])/',
function($matches) {
return '\\' . $matches[0];
},
$query);
?>