こんな記事を見かけたので。
ホの字5 – 更新案内メモ – 超高速全文検索を作ってみたMovableTypeの検索機能って、
検索結果が表示されるまでの速度が遅いっすよね。
まあ遅いっつっても30秒も待たないけど、早くはない。
原因はMovableTypeの構造とかサーバー構成とかいろいろ。
そこで最速インターフェース研究会で発見した
JavaScriptにBlogの全文検索をやらせてみるという記事を参考に
それをちょっぴり改造してサーバー上に乗っけてみました。
→ 溝の口ランチログの超高速検索の実験(要JavaScript)
作ってみた検索用ページはこちら。
全文検索 – NOBODY:PLACE – MUTTER
直近のエントリ1000件の中から、任意のキーワードで検索することが出来ます。
本当は全エントリ(6000弱)にしたかったところなんだけど、
システムの仕様上、全データを書き出してデータファイルとしてまとめておき、
それをJavaScriptで検索してAjaxで表示するということをやっているので、
母数を大きくすると当然データファイルも大きくなり、ということは当然ロード時間も長くなるので…
(全エントリを書き出したら13Mのデータファイルになって、アクセスに30秒くらいかかるようになった)
仕方なく1000件で切り。
まぁ、テスト段階ってことで。
処理自体はほぼいじってなくて、ホの字5さんのスクリプトから変えたところは、
- 表示結果数を10→30件に増やした
- 検索の際に大文字小文字を区別しないようにした
- そのほかデザイン面
使い勝手は、かなりいいね!
アホかって言うくらいあっさりと検索されます。
素晴らしい。
似たような処理で言うと、このあたりもほとんど同じ考え方かな?
暴想: ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript
パーツとしての体裁のまとめ方が上手。
まぁただ、検索欄を置きたい気分ではなかったので今回は見送り。
もし、きちんと検索欄をおいてやりたいとなったら考えるかも。
(検索欄方式は、ロードしながら処理できるという利点もあるんだよね。実は)
最後に、この検索ページを作るに当たって作成した、データ用インデックステンプレートでも貼っておきます。
キーワードは使ってないので、代わりにタグを格納しておきました。
var start = new Date().getTime();
var data = [{}
,{file:"",title:"",time:"",body:"",category:"",author:"",keywords:""}
];
data.shift();