AjaxでWikipediaをインクリメンタルサーチするDEMO
作ってみた。
http://wpincr.spiritloose.net/
こんな感じ。
Firefox 1.5.0.7、IE6、Opera 9.02で確認済。
同様のものはすでにあるみたいだけど、なんか今は動かしてないっぽいのと、いろいろ試したかったので。
が、結構遅いのであまり使えないかも・・・。
ポイントは、振り仮名の前方一致検索じゃなくてMigemoを使ってるところ(だから遅いんだけど)。
使ってるもの。
- mod_perl
- MySQL + mregexp
- Text::Migemo
- script.aculo.usのAjax.AutoCompleter
mregexpがどこまで使えるか知りたかったのと、この前作ったText::Migemoを有効活用しないとなーと思って。
一応ソース一式はここに。
ちなみに、Perlのコードは20行ぐらい。
やってることは
かなり単純。
DBに持ってるのはオリジナルのタイトルだけでKakasiとかで振り仮名作ったりとかもしてない。
もちろんそのほうがぜんぜん速くなると思うけど。まぁデモなので。
これだけシンプルに作れるっていうのが重要。
あと、つかってて思ったけど、これ多分タイトルだけじゃなくて検索対象に本文を含めてもいけそう。
mregexp はカラムの大きさが大きくてもそこまでパフォーマンスダウンしないと思われる(多分だけど)。
その辺って多分Onigurumaの性能次第だし。
とりあえず、mregexp は非常に使える。
で、今回使った mregexp の解説が『超・極める!MySQL』に載るとのこと。
ムック『超・極める!MySQL』に寄稿しました - (ひ)メモ
これは欲しいな。買おう。