自分メモ。
MySQL自体には、Full Textという全文検索機能があることはあるが、日本語には対応してない。
いまんところ、LIKE %hoge%でやったりしてるんだけれど、当然、インデックスが使われないので遅い。
なんとかMySQLにおいて、(簡単に)日本語で全文検索する方法がないか調べてみた。
MySQLで日本語全文検索を行うためには、まず、形態素解析やN-gramによって、文字列をワードごとに分割して、スペースで区切り、さらに、16進数文字に変換したりして、あたかも日本語ではないかのように装う必要があります。
MySQLでお気楽全文検索
では、chasenを使って、日本語を単語に分割し、DBに登録しているのだけれど、Perlなので読むきがしない・・
方法として、2つあるようです。
1)chasenなどを使って、日本語を単語に分割して、コード化して、FULL TEXT検索の対象とさせる。
2)PRIMARY KEYをファイル名とし、検索対象データをファイルに書き出して、Namazuを用いてインデックス化する。WebからNamazuに対して検索し、結果のファイル名をハンドリングし、さらにMySQLからマスターのデータを引っ張ってくる。
1のほうがスマートはスマートかな・・。(どちらも面倒は面倒だけど)
いろいろ調べてる途中で発見したサイト。
Ajax を使った 日本語 IME + KWIC
おぉ。すげぇee!!!!(んで、すごい悔しい!)
MeCab(めかぶ)を使ってるらしい。
ChaSen や KAKASI よりも 3-4倍程度 高速
まじで!?あとで調べよう!(積読リンク)
関連リンク:
●MAC OS XにNAMAZUをインストールする
うわっ。すげぇめんどうっぽい。
●MySQLでお気楽全文検索
●PHP+MySQLで日本語全文検索
●日本語全文検索エンジン"Freya"
簡単そう。
・・・ていうか、MySQL 4.1にして、unicodeにしておいたら万事OKなのか???