MySQL + mnoGoSearch が動かない
数百万から数千万件程度の英文テキストのレコードを全文検索出来る状態にしたかったりするわけだが、主な検索対象は名詞句じゃなくて述部だったりするので、stemming しないと(自分の用途では)使い物にならないような気がする。*1
ってことで、mnoGoSearchの MySQL 5.1 用の Full-text parser plugin があってそれが使えるっぽいので、インストールして使ってみようとしたら、こんな感じに。
mysql> insert into sentences (id, content) values ('1', 'This is test of mnogosearch & MySQL.'); ERROR 2013 (HY000): Lost connection to MySQL server during query
うーむ。動かん。何でだ。そのままだとコンパイル自体通らないから一応 patch をさらしておく。
--- src/spell.c.orig 2006-05-26 04:23:19.000000000 -0400 +++ src/spell.c 2006-12-04 16:23:40.000000000 -0500 @@ -1245,7 +1245,7 @@ }; -mysql_declare_plugin +mysql_declare_plugin(stemming) { MYSQL_FTPARSER_PLUGIN, &udm_parser_declaration,
というか stemmer の実装自体は手元にあるし*2、自力で各トークンを stemming してから検索用のカラムに格納したほうがいいような気がしてきた。あと Lucene を使うという手もあるけど、あれのスケーラビリティってどんなもんだろう。