mroonga 3.06リリース
mroonga 3.06 をリリースしました!
インストール/アップグレード方法
それぞれの環境毎のインストール方法: インストール
以前のバージョンからアップグレードする場合には、アップグレード手順に注意が必要です。現在お使いのバージョンごとのアップグレード手順を参照してください。
1.20より前のバージョンからアップグレードする場合は 1.20リリース 2012/01/29 にある手順を使ってください。
1.20からアップグレードする場合は 2.00リリース 2012/02/29 にある手順を使ってください。
2.00か2.01からアップグレードする場合は、 2.02リリース 2012/04/29 にある手順でパッケージ署名用の新しい鍵をインポートしてください。
2.00以降でストレージモードにてマルチカラムインデックスを使っている場合は 2.02リリース 2012/04/29 にある手順でインデックスを作り直してください。
2.04以降でストレージモードにてSETカラムもしくは要素数が256より少ないENUMを使用している場合は、 2.05リリース 2012/07/29 にある手順でデータベースを再作成してください。
2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている場合は、 2.08リリース 2012/10/29 にある手順でインデックスを再作成してください。
2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、データベースを再作成してください。CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してください。手順は 2.09リリース 2012/11/29 にあります。
今回のリリースの主なトピックは以下の通りです。
- mroonga_action_on_fulltext_query_errorセッション変数をサポート
- Fedora 19をサポート
mroonga_action_on_fulltext_query_error
セッション変数をサポート
今回のリリースでは mroonga_action_on_fulltext_query_error
セッション変数をサポートしました。
mroonga-action-on-fulltext-query-error は、全文検索クエリを実行したときのエラーをどのように扱うかを制御するための変数です。
これまでクエリのエラーは、エラーを報告し、ログにも出力するようにしていました。
ただし、アプリケーション側でログをとっている場合に、エスケープが適切にできていないときのエラーがその他のシンタックスエラーに埋もれてしまうことがありました。これをなんとかしたいという要望に応えたものです。
以下の4種類を設定することができます。
- ERROR エラーを報告する。ログは無効です。
- ERROR_AND_LOG エラーを報告する。ログは有効です。(これがデフォルトです)
- IGNORE エラーを無視する。ログは無効です。
- IGNORE_AND_LOG エラーを無視する。ログは有効です。(これはInnoDBと同様です)
例えば、以下のようなシンタックスエラーになるクエリ( (
が適切にエスケープされていない )を例に考えてみます。
SELECT * FROM `test_mroonga` WHERE MATCH(`main`) AGAINST('(仮)*' IN BOOLEAN MODE);
ERROR_AND_LOGもしくはIGNORE_AND_LOGを設定した場合、以下のようにログが記録されます。
...
2013-07-26 17:29:03.297739|e|ba4d8940|Syntax error! ((仮)*)
...
2013-07-26 17:29:03.300049|e|ba4d8940|failed to parse fulltext search keyword: <(仮)*>:
...
一方、ERRORもしくはIGNOREを設定した場合、以下のようにログが記録されます。
...
2013-07-26 17:38:53.847593|e|ba4d8940|Syntax error! ((仮)*)
...
全文検索のクエリのパースエラーログの記録の有無に影響していることがわかります。
ERRORとIGNOREの違いは mroonga_action_on_fulltext_query_error
を表示し、上記の全文検索のクエリを実行したときの様子からわかります。
$ mysql < error.sql
Variable_name Value
mroonga_action_on_fulltext_query_error ERROR
ERROR 1064 (42000) at line 23: failed to parse fulltext search keyword: <(仮)*>:
$
ERRORだと上記のようにエラーが報告されることがわかります。
$ mysql -u root < error.sql
Variable_name Value
mroonga_action_on_fulltext_query_error IGNORE
$
IGNOREだと上記のようにエラーが無視されることがわかります。
Fedora 19をサポート
今回のリリースでは、2013年7月2日にリリースされたFedora 19のサポートを始めました。その代りにFedora 18のサポートをやめています。
Fedora 19からはMariaDBが採用されました。それにともないMySQLのパッケージ名も変更されています。
また sudo yum install mysql
とするとMariaDBがインストールされるようになるなど、MySQLをインストールすることもできる、という扱いになっています。
MySQL (community-mysql) だけでなくMariaDBに対応したパッケージも提供予定でしたが、動作上の問題が見つかったため、一旦保留しています。
今後のリリースでは、これまで通りMySQLと一緒に使う場合は mysql-mroongaを、MariaDBと一緒に使う場合にはmariadb-mroongaをインストールできるようにする予定です。
さいごに
3.05からの詳細な変更点は 3.06リリース 2013/07/29 を確認してください。
それでは、mroongaでガンガン検索してください!