Tasuku SUENAGA
a****@razil*****
2007年 1月 3日 (水) 06:22:00 JST
末永です。 SHOW CREATE TABLEの結果を見ると、 indexer_registというカラムに対するインデックスの名前は、 index_indexer_registのようです。 よって、 SELECT * FROM indexer force index(indexer_regist) WHERE MATCH(indexer_description) AGAINST('海') ORDER BY `indexer_regist` LIMIT 1,10; ではなく、 SELECT * FROM indexer force index(index_indexer_regist) WHERE MATCH(indexer_description) AGAINST('海') ORDER BY `indexer_regist` LIMIT 1,10; というクエリを投げる必要があります。 yuji tomita wrote: > お世話になっております。富田です。 > >> 1.PHPからmysql関数およびmysqli関数を使用して該当SQLを発行すると、前述 > のエラー発生。 >> 2.Perl/CGIからDBIを通して該当SQLを発行すると、前述のエラー発生。 >> 3.コマンドラインからmysqlにログインして実行した場合、正常動作。 >> 4.phpMyAdminで該当SQLを発行した場合、正常動作。 > >> クライアントによって挙動が違う場合として、 >> MySQLにわたってくる文字コードが違う場合が考えられます。 > 一般ログでは、1と4は全く同じクエリを投げた事になっており、文字化けが > 確認できませんでした。しかし1の場合は下記エラーをPHPが受け取っています。 > Can't find FULLTEXT index matching the column list > > ------------------------------------------------------------------------ > ・show create table indexer;の結果 > | indexer |CREATE TABLE `indexer` ( > `entry_id` int(11) DEFAULT NULL, > `indexer_url` varchar(200) NOT NULL, > `indexer_title` varchar(200) NOT NULL, > `indexer_description` text NOT NULL, > `indexer_description_org` text NOT NULL, > `indexer_body` text NOT NULL, > `indexer_subject` varchar(400) NOT NULL, > `indexer_copyright` varchar(400) NOT NULL, > `indexer_movie_flg` tinyint(1) NOT NULL, > `indexer_podcast_flg` tinyint(1) NOT NULL, > `indexer_service` varchar(100) NOT NULL, > `indexer_author` varchar(400) NOT NULL, > `indexer_pubdate` varchar(30) NOT NULL, > `indexer_regist` datetime NOT NULL, > `indexer_update` datetime NOT NULL, > `indexer_site_id` int(11) DEFAULT NULL, > UNIQUE KEY `entry_id` (`entry_id`), > KEY `index_indexer_url` (`indexer_url`), > KEY `index_indexer_title` (`indexer_title`), > KEY `index_indexer_regist` (`indexer_regist`), > KEY `index_indexer_update` (`indexer_update`), > FULLTEXT KEY `indexer_description` (`indexer_description`), > FULLTEXT KEY `indexer_description_org` (`indexer_description_org`), > FULLTEXT KEY `indexer_body` (`indexer_body`) > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | > ------------------------------------------------------------------------ > > ・Sennaのインデックスを張る際のSQL文 > 上記のcreate文の通りです。 > > ------------------------------------------------------------------------ > ・/var/senna/senna.confの内容 > DEFAULT_ENCODING utf8 > > ------------------------------------------------------------------------ > ・mecabインストールログ > 文字コードはutf-8(辞書構築時に指定) > ------------------------------------------------------------------------ > > 恐れ入りますが、よろしくお願いいたします。