Kouhei Sutou
kou****@clear*****
2015年 10月 30日 (金) 10:43:26 JST
須藤です。 In <23551****@web10*****> "[groonga-dev,03611] 検索条件に関して" on Fri, 30 Oct 2015 10:11:51 +0900 (JST), takah****@yahoo***** wrote: > 表題の件で御座いますが、前回ご作成頂きました、 > windows版mroongaのmecabを使用して、以下の様なテーブルを作成しました。 > > ------------------------------- > delimiter $$ > > CREATE TABLE `mail` ( > `No` double NOT NULL AUTO_INCREMENT, > `Subject` varchar(1000) DEFAULT NULL, > `Body` mediumtext, > `ToAdd` varchar(1000) DEFAULT NULL, > `FromAdd` varchar(1000) DEFAULT NULL, > `Cc` varchar(1000) DEFAULT NULL, > `Bcc` varchar(1000) DEFAULT NULL, > `Date` timestamp NULL DEFAULT NULL, > `AttachedFile` tinyint(4) DEFAULT NULL, > PRIMARY KEY (`No`), > FULLTEXT KEY `ToAdd` (`ToAdd`), > FULLTEXT KEY `Cc` (`Cc`), > FULLTEXT KEY `Bcc` (`Bcc`), > FULLTEXT KEY `FromAdd` (`FromAdd`), > FULLTEXT KEY `Body` (`Body`) COMMENT 'parser "TokenMecab"', > FULLTEXT KEY `Subject` (`Subject`) COMMENT 'parser "TokenMecab"' > ) ENGINE=Mroonga AUTO_INCREMENT=81 DEFAULT CHARSET=utf8$$ > ------------------------------- > > 全文検索を行いたく、抜粋しておりますが、 > 以下の様なテーブルに対して、 > SELECT * FROM mail WHERE MATCH (subject) AGAINST ("test"); > のselect文を行いたいのですが、toaddやfromaddは検索結果が出力されるのですが、 > subjectやbodyに関しては0row(s)returnedになるのですが、 > createまたはselectのやり方に関して、間違っている箇所は御座いますでしょうか。 > ※body、subjectに関しては値が多い為、インデックスの容量が小さくなるだろうと > 考えてmecabを採用する想定です。 AGAINST部分を次のように変えて試してもらえますか? (「IN BOOLEAN MODE」というのが増えているのと、キーワードの 前に「+」を付けているのが変更点です。) SELECT * FROM mail WHERE MATCH (subject) AGAINST ("+test" IN BOOLEAN MODE); あと、もしよかったら問題が再現するデータを挿入するINSERT文も 提供してもらえないでしょうか?そうするとこちらでも試せるので す。。。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/