Tasuku SUENAGA
a****@razil*****
2006年 10月 16日 (月) 22:57:32 JST
末永です。 同様のケースでは、 以下のような問題が発生していました。 ●MeCabの辞書がutf-8でない 確認方法: コマンドラインでMeCabを起動し、 何かutf-8文字列を入力し、 返ってくる文字列がutf-8であることを確認する ●/var/senna/senna.confにDEFAULT_ENCODING utf8が書かれていない 確認方法: cat /var/senna/senna.conf ●mysqlライブラリの設定で、自動文字コード変換が働いてしまい、 mysqlサーバに保存されている文字列がutf-8になっていない 確認方法(1): MySQLのデータファイルである「テーブル名.MYD」ファイルに対して headで表示し、utf-8っぽい文字列が入っていることを確認する 確認方法(2): sennaのtest/itest -vを用いて、 Sennaのインデックスに登録されている単語一覧を表示させ、 utf-8で単語が登録されていることを確認する 1番目と2番目の問題は簡単にチェックできますが、 3番目の問題はやっかいです。 MySQLへの格納時も、検索時も文字コード変換がかかるため、 アプリケーション側から見ると、 あたかもMySQL側でutf-8の文字列を保持しているように見えるからです。 3番目の問題であれば、 http://www.scs.co.jp/mysql/ にある 「MySQL日本語処理完全解説」というファイルが解決の参考になると思います。 以上、参考になれば幸いです。 MITSUGI kiyoshi wrote: > はじめまして、三ツ木と申します。 > > Mac OS X 10.4.8、MySQL5.1.11-beta、mecab-0.93、 > senna-0.8.1、 > utf8でテスト中です。基本的な使い方が全くわかっていないせい > なのかもしれませんが、例えば“桃”で検索した結果と“桜”で > 検索した結果とが同じになります。これは何かオプションをつけ > て検索すべきなのでしょうか。SQL文は、 > > SELECT DISTINCT CONCAT(h.hoge_belong, h.hoge_cd) AS hoge_cd > FROM hoge AS h > WHERE 1 > AND MATCH(h.hoge_name, h.hoge_catch_copy, h.hoge_point) AGAINST > ('桃'); > > という感じです。また、“タラコ”でタラが引っかかったりするなど、 > ちょっと挙動を掴みあぐねています。“タラ”が引っかかるのも、全 > ての“タラ”ではなく、1つのみ引っかかってきました。“たら > こ”だと > かなり“たら”が引っかかります。 > > よろしくお願いします。 > > > ---------------------------- > MITSUGI, kiyoshi > kiyos****@mitsu***** > http://www.mitsugi.jp/ > ----------------------------