mroongaで()~+><-*などの記号を含んだ文字列を検索しようとすると、以下のエラーが起きます。
ERROR 1064 (42000): failed to parse fulltext search
keyword
本日はその対処法を紹介します。
エスケープ方法
特別な意味を持つ記号を検索する場合
()~+><-*などの記号を検索する場合は、ダブルクォートで囲いましょう。
以下、「<meta>」という検索を行う際のエスケープ方法です
-- 動かない
SELECT COUNT(*) FROM test_table WHERE MATCH(body) AGAINST('*D+ <meta>' IN BOOLEAN MODE);
ERROR 1064 (42000): failed to parse fulltext search keyword: <*D+ <meta>>: <Syntax error! (<meta>)>
-- 動く
SELECT COUNT(*) FROM test_table WHERE MATCH(body) AGAINST('*D+ "<meta>"' IN BOOLEAN MODE);
…
[さらに読む]