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