ブール検索モードでは、単語と演算子のみが意味を持ちます。演算子は次のとおりです: +
、-コード> 、
><コード> 、
()
、〜コード> 、
*コード> 、
"コード> 、
@distance
。調査の結果、大文字、小文字、数字(数字)、 _
という単語の文字が何であるかがわかりました。 。次の2つのアプローチのいずれかを使用できると思います:
-
単語以外のすべての文字をスペースに置き換えます(私はこのアプローチを好みます)。これは正規表現で実現できます:
$search = preg_replace('/[^\p{L}\p{N}_]+/u', ' ', $keyword);
-
文字演算子をスペースに置き換えます:
$search = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $keyword);
全文検索エンジンによって索引付けされ、検索できるのは単語のみです。単語以外の文字はインデックスに登録されないため、検索文字列に残しておくのは意味がありません。
参照: