Naozumi Uchiyama
sac.7****@gmail*****
2008年 3月 3日 (月) 00:53:55 JST
はじめまして。
ウチヤマともうします。
tritonn の開発者 mir さんのコメント欄にも記述させていただいたのですが,
検索文字列に対して完全一致のみの文字列を含む文章を取り出したいと考えております。
例えば,
今日の東京都の天気は晴れです
明日の京都の天気は雨です
の2文章があった場合,
「京都」で検索したときに1行目の東京都でヒットしないようにしたいのです。
tritonn-1.0.9-mysql-5.0.51a-linux-i686.tar.gz を使用して,
CREATE TABLE articles (id INT PRIMARY KEY, body TEXT) DEFAULT CHARSET utf8
ENGINE = MyISAM;
CREATE FULLTEXT INDEX i_articles USING MECAB ON articles(body);
を実行し,show senna status\G; にて,
index タイプが mecab であること,charcterset が utf-8 となっておりました。
INSERT INTO articles (id, body) VALUES(1, "今日の東京都の天気は晴れです。");
INSERT INTO articles (id, body) VALUES(2, "明日の京都の天気は雨です。");
をテーブルに挿入後,
SELECT * FROM articles WHERE MATCH(body) AGAINST("京都");
や
SELECT * FROM articles WHERE MATCH(body) AGAINST("*E-1 京都" IN BOOLEAN
MODE);
とした時,2行とも検索にヒットしてしまいます。
mecab インデックスではなく,
予め,分かち書きしておき,DELIMITED インデックスを使用する必要があるのでしょうか。
よろしくお願いいたします。