MySQL + Senna
FULLTEXT インデックスの構文が変わる
FULLTEXT (`text`)
だったのが↓にかわる
Ngramのインデックス
CREATE TABLE IF NOT EXISTS `foo` ( `id` int(11) NOT NULL auto_increment, `text` mediumtext NOT NULL, PRIMARY KEY (`id`), FULLTEXT INDEX USING NGRAM (text) ) ENGINE=MyISAM DEFAULT CHARSET=sjis;
mecabのインデックス
CREATE TABLE IF NOT EXISTS `foo` ( `id` int(11) NOT NULL auto_increment, `text` mediumtext NOT NULL, PRIMARY KEY (`id`), FULLTEXT INDEX USING MECAB (text) ) ENGINE=MyISAM DEFAULT CHARSET=sjis;
MySQLの素のインデックス
CREATE TABLE IF NOT EXISTS `foo` ( `id` int(11) NOT NULL auto_increment, `text` mediumtext NOT NULL, PRIMARY KEY (`id`), FULLTEXT INDEX USING NO SENNA (text) ) ENGINE=MyISAM DEFAULT CHARSET=sjis;
検索するとき
普通にMATCH〜AGAINSTでいける
SELECT * FROM foo WHERE MATCH (text) AGAINST('探したい文字列' IN BOOLEAN MODE);