mroongaで「API version for STORAGE ENGINE plugin is too different」というエラーが起きたときの対処法
以下のエラーが起きてしまった時の対処法を紹介します。
2013-06-04 17:36:01 21440 [ERROR] Can't open shared library 'ha_mroonga.so' (errno: 0 API version for STORAGE ENGINE plugin is too different)続きを読む
mroongaのインストール/アンインストール時に発行するするクエリと、その用途をまとめて解説
mroongaのプラグインインストール・アンインストールを手動で行いたい方向けのメモ。
MySQLが起ち上がっていない状態で、プラグインをインストールした時にも必要ですね。
更新履歴
2014年1月8日:mroonga-3.07の新機能であるmroonga_escapeのトピックを追加
インストール時に実行しているクエリ
DELETE IGNORE FROM mysql.plugin WHERE name = 'mroonga'; INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so'; CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so'; CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so'; CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';続きを読む
groonga/mroongaのトークナイザー(tokenizer)の挙動を追ってみる
トークナイズ機能は、全文検索機能に無くてはならない機能です。
欧米圏であれば、最低限スペース区切りに対応していれば実用的に使えます。
しかし、中国語、日本語、韓国語への対応をする場合には、CJK対応言われる実装が必要です。
汎用的な分かち書き(トークナイズ)方法としては、n-gram方式があり、uni-gramやbi-gram、tri-gramが有名です。
n-gramは汎用ではありますが、機械的に分解するが故に精度があまり高くなく、語彙の部分一致検索でしかありません。
そこで、品詞毎にトークナイズの出来る、MeCabやJumanといった形態素解析エンジンの出番となります。
mroongaでは、groonga-tokenizer-mecab
というパッケージを追加することで、形態素解析エンジンのMeCabに対応します。
その他、Bigramの独自拡張にも対応しているようなので、それぞれどのような挙動を示すのか、実験してみたいと思います。
この結果を参考に、要件に見合ったトークナイザーを選べると良いですね。