Movable Type記事検索の高速化

リンク集で検索できるようになったと喜んでいたのですが,過去ログを全部移植したら,データが大きくなったため,検索に待ちきれないほど時間が掛かるようになってしまいました.

そこで,以前に記事だけ見つけて,ふんふんと思っていた「暴想」の「ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript」導入決定.

これは,検索用のテキストデータを出力するインデックステンプレートを作っておいて,検索の時はMovable TypeのDBファイルからデータを引っ張るのではなくて,そのテキストデータから引っ張ってきましょう,という物.

風柳亭 - 別館:書庫のある庵 -」の「blog_ajax_json_search.jsにパッチ:コメントも含めて検索」も参考に,データ用のテンプレートを作ります.

リンク集の検索データにするため,<MTEntries>タグには,

category="200リンク" include_subcategories="1"

という指定を付け加え,link_search_data.txtという名前のファイルを出力するようにします.

他所のサーバーからファイルを呼ぶのは申し訳ない気がしたので,blog_ajax_json_search.jsは「風流亭」から,prototype.jsは「Prototype JavaScript Framework」からダウンロードして,まあ,どこでも良かったんですが,Movable TypeのCGIがあるディレクトリに入れて,検索ボックスのテンプレートの1行目2行目を,

<script type="text/javascript" src="<$MTCGIPath$>prototype.js"></script>

<script type="text/javascript" src="<$MTCGIPath$>blog_ajax_json_search.js"></script>

に修正しました.

検索ボックス周りでは,あと,formのところに検索ファイルを指定しているところが2カ所あるので,link_search_data.txtを指定.

それから,検索結果の出力のために,出力したい場所を<div class="content"></div>で大きく括ります.

試してみたところ,おお,早い,早い.「正規表現」などのオプションは使えなくなりますが,十分でしょう.

面白かったので,もう1つ,今度は全文検索用のデータを出力するテンプレートも作って,404 Not Foundとか403 Forbiddenのエラーが出た時に使えるようにしておきました.

最近,Movable Typeに移行して古いディレクトリを消してしまったので,この404や403エラーが頻発している.

日時: 2006年12月27日 | PC/Web |

コメントを投稿

(空欄でもかまいません)

(メールアドレスは管理人に通知されますが,Web上には表示されません)

Powered by Movable Type