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はもう少し先に・・・)。お楽しみに〜。