NGRAMのデフォルト化
ここ1週間ほど多忙だったためbugfixくらいしかできていなかったのですが、今日ようやくNGRAMのデフォルト化の実装をすることができました。
次のリリースであるtritonn-1.0.7からは、USING句に何も指定しなかった場合、NGRAMが使用されるようになります。
これに伴い、USING句で指定可能なフラグ情報のひとつに"MECAB"を追加しました。以下のように明示的に宣言することで従来通りMECABと連携させることが可能です。
CREATE TABLE t1 (c1 TEXT, FULLTEXT INDEX ft USING MECAB (c1));
また同時に、MySQLのオプションとして"senna-index-type"を追加しました。senna-index-typeは値としてNGRAMおよびMECABのどちらかを設定することが可能です。(デフォルト値はNGRAM)
以下のようにmy.cnfで設定することが可能です。
[mysqld] senna-index-type=mecab
またmysqld起動中にSETコマンドで動的に変更することも可能です。
mysql> set global senna_index_type=mecab
以下の2点に注意して下さい。
- globalスコープのみの変数(非session変数)として実装しましたのでSETコマンド使用時にはglobalと付ける必要があります。
- SETコマンドおよびSHOW VARIABLEコマンドで操作する際には名前が"senna_index_type"とアンダースコアを用いた形式になります。
senna-index-typeの値を"mecab"と設定した場合には、デフォルトで使用されるインデックスがmecabになります。
尚、当初計画していたconfigureオプションでの設定は見送りとさせていただきました。上記2つの方法のどちらかで十分かなぁと思い直したためです。
という感じでそろそろtritonn-1.0.7のリリース作業に入りたいと思います。tritonn-1.0.7ではバイナリのリリースを行うつもりです(さしあたりLinuxのみ。Windowsはもう少し先に・・・)。お楽しみに〜。