mysql:16004
From: HAYASHI Kentaro <HAYASHI Kentaro <hayashi@xxxxxxxxxx>>
Date: Mon, 29 Jul 2013 11:08:29 +0900
Subject: [mysql 16004] [ANN] mroonga 3.06
林です。 今日は毎月恒例の肉の日ですね。 まずはじめに、隔週連載groongaの紹介です。 これまでも、groonga.orgにて利用事例 http://groonga.org/ja/users/ を 紹介してきましたが、それとは別に、http://gihyo.jp/にてgroonga関連の記事の連載を 隔週連載groongaとして続けています。 まだgroongaを知らない人にもWebの連載記事を通じて知ってもらいたいというのが動機です。 現在第7回まで公開しています。 * 第7回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(2) http://gihyo.jp/dev/clip/01/groonga/0007 過去の記事(第1回から第6回)については隔週連載groongaのページを参照してください。 http://gihyo.jp/dev/clip/01/groonga 似たような動機で、毎週木曜にQiitaでのgroonga関連の情報提供も続けています。 こちらも参考にどうぞ。 http://qiita.com/groonga mroonga 3.06をリリースしました。 http://mroonga.org/ja/docs/news.html#release-3-06 mroongaはMySQL 5.1/5.5/5.6、MariaDB 5.3/5.5/10.0で利用できる全文検 索・位置情報検索可能なストレージエンジンです。mroongaは Tritonnの後継プロジェクトです。 ドキュメント: http://mroonga.org/ja/ インストールガイド: http://mroonga.org/ja/docs/install.html mroongaでよくあるMySQLとのバージョン不一致で うまくインストールできなかったんだけど、、、というトラブルも リリース直後は遭遇しにくいので、この機会にmroongaを試してみるのは いかがでしょうか。 みなさんからのフィードバックをお待ちしています! 1.20より前のバージョンからアップグレードする場合は以下にある 手順を使ってください。 http://mroonga.org/ja/docs/news.html#release-1-20 1.20からアップグレードする場合は以下にある手順を使ってくださ い。 http://mroonga.org/ja/docs/news.html#release-2-00 2.00か2.01からアップグレードする場合は、以下の手順でパッケージ 署名用の新しい鍵をインポートしてください。 http://mroonga.org/ja/docs/news.html#release-2-02 2.00以降でストレージモードにてマルチカラムインデックスを 使っている場合は以下の手順でインデックスを作り直して ください。 http://mroonga.org/ja/docs/news.html#release-2-03 2.04以降でストレージモードにてSETカラムもしくは要素数が256より 少ないENUMを使用している場合は、以下の手順でデータベースを 再作成してください。 http://mroonga.org/ja/docs/news.html#release-2-05 2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている 場合は、以下の手順でインデックスを再作成してください。 http://mroonga.org/ja/docs/news.html#release-2-08 2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、 データベースを再作成してください。 CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してく ださい。 http://mroonga.org/ja/docs/news.html#release-2-09 今回のリリースの主なトピックは以下の通りです。 * mroonga_action_on_fulltext_query_errorセッション変数をサポート * Fedora 19をサポート ○ mroonga_action_on_fulltext_query_errorセッション変数をサポート 今回のリリースではmroonga_action_on_fulltext_query_errorセッション変数を サポートしました。 これは、全文検索クエリを実行したときのエラーをどのように扱うかを 制御するための変数です。 http://mroonga.org/ja/docs/reference/server_variables.html#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 < 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のパッケージ名も変更されています。 Fedora 19ではsudo yum install mysqlとするとMariaDBがインストールされるように なるなど、MySQLをインストールすることもできる、という扱いになっています。 今回のリリースでMariaDB対応のmroongaも同時にリリースする予定でしたが、 パッケージに動作上の問題が発覚したため、MariaDB対応版パッケージであるmariadb-mroongaは 一時的にリリースを保留としました。 パッケージをビルドするための仕組みはできているので、Fedora 19では 将来的にMySQL (community-mysql)向けにはmysql-mroongaを、MariaDB向けには mariadb-mroongaをインストールすれば使えるようにする予定です。 ○ 変更点 3.05からの変更点は以下の通りです。 http://mroonga.org/ja/docs/news.html#release-3-06 改良 ^^^^ * mroonga_action_on_fulltext_query_error セッション変数を追加しました。 これは不正なエスケープに対するエラーを報告する方法に影響します。 [groonga-dev,01529] [田辺公平さんが報告] * 行カウントの最適化がMySQL 5.5やMariaDB 10.xのラッパーモードでも有効になりました。 [#1841] [groonga-dev,01523] [村上さんが報告] この最適化はストレージエンジンがトランザクションをサポートしている場合には動作しません。 * Fedora 19に対応しました。 * Fedora 18対応をやめました。 感謝 ^^^^ * 田辺公平さん * 村上さん -- HAYASHI Kentaro <hayashi@xxxxxxxxxx>