Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

MySQL-5.6.4からの新機能「InnoDB FullText Search」という全文検索機能でWITH PARSERが動かないので調べてみました

MyISAMで出来るparserの指定、InnoDBでも出来たら夢が広がりますよね。

そう、MySQL-5.6.4から対応となったInnoDB FullTextSearchを、
自作のparser pluginで拡張できるとしたらもう、最高じゃないですか!
クエリとしてはFULLTEXT INDEX (...) WITH PARSER my_parserという具合に。

だがしかし、、現実は甘くありません。

物は試しと、全文検索パーサプラグイン「mysqlftppc」MySQL-5.6対応の改造版を公開で作ったMySQL-5.6対応のパーサプラグインとInnoDB FullTextSearchを組み合わせたところ、WITH PARSERが完全に無視されている挙動です。

調べたところ、MySQL Bugsに該当のチケットがありました。

Noted in 5.6.12, 5.7.2 changelogs.

InnoDB does not support full-text parser plugins, but failed to report an error if they were specified. Now an ER_INNODB_NO_FT_USES_PARSER error is returned.

http://bugs.mysql.com/bug.php?id=62004

意訳すると、以下の通りです。

InnoDB全文検索のパーサプラグインには対応していません。 MySQL-5.6.12, 5.7.2より、ER_INNODB_NO_FT_USES_PARSERというエラーを返すようにします。

残念ながら、この夢の道のりは長そうです。