« 日々ビクビク | メイン | 死の壁 »

mysqlで日本語全文検索するには?

自分メモ。
MySQL自体には、Full Textという全文検索機能があることはあるが、日本語には対応してない。
いまんところ、LIKE %hoge%でやったりしてるんだけれど、当然、インデックスが使われないので遅い。

なんとかMySQLにおいて、(簡単に)日本語で全文検索する方法がないか調べてみた。

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なのか???

トラックバック

このエントリーのトラックバックURL:
http://www.ironhearts.com/diary/mt-tb-ih.cgi/150

コメントを投稿

2008年12月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のコメント

999 on 日々の記録: 4600Cを業務で使
uta on エラーコード -10660: はぁ〜なるほど。 あ
あんどりゅー on Firefoxでtableをdisplay:blockすると、幅がおかしくなる問題の対処: なるほど! 助かりま
小優 on 日々の記録: DELL4600Cで
よしぞう on 日々の記録: 4600C 表記の対
よしぞう on 日々の記録: 4600C 表記の対
on MySQL後で調べるメモ: DB接続後 目的のS
on 日々の記録: 「無くなった留め具」
on JavaScriptでクロスドメイン: >しかし、こういう小
junp on iMovieで静止画を取り込むと荒い: すいません困ってます

アーカイブ