AjaxでWikipediaをインクリメンタルサーチするDEMO


作ってみた。

http://wpincr.spiritloose.net/


こんな感じ。


Firefox 1.5.0.7、IE6、Opera 9.02で確認済。

同様のものはすでにあるみたいだけど、なんか今は動かしてないっぽいのと、いろいろ試したかったので。

が、結構遅いのであまり使えないかも・・・。

ポイントは、振り仮名の前方一致検索じゃなくてMigemoを使ってるところ(だから遅いんだけど)。


使ってるもの。


mregexpがどこまで使えるか知りたかったのと、この前作ったText::Migemoを有効活用しないとなーと思って。

一応ソース一式はここに。

ちなみに、Perlのコードは20行ぐらい。


やってることは

  • 入力された文字をText::Migemoに食わせて正規表現を取得
  • 得られた正規表現をそのまま mregexp に渡して検索

かなり単純。


DBに持ってるのはオリジナルのタイトルだけでKakasiとかで振り仮名作ったりとかもしてない。
もちろんそのほうがぜんぜん速くなると思うけど。まぁデモなので。

これだけシンプルに作れるっていうのが重要。


あと、つかってて思ったけど、これ多分タイトルだけじゃなくて検索対象に本文を含めてもいけそう。
mregexp はカラムの大きさが大きくてもそこまでパフォーマンスダウンしないと思われる(多分だけど)。
その辺って多分Onigurumaの性能次第だし。


とりあえず、mregexp は非常に使える。

で、今回使った mregexp の解説が『超・極める!MySQL』に載るとのこと。

ムック『超・極める!MySQL』に寄稿しました - (ひ)メモ




超・極める!MySQL


坂井 恵 志村 和彦 ひろせ まさあき 松信 嘉範

翔泳社


これは欲しいな。買おう。