リンク集で検索できるようになったと喜んでいたのですが,過去ログを全部移植したら,データが大きくなったため,検索に待ちきれないほど時間が掛かるようになってしまいました.
そこで,以前に記事だけ見つけて,ふんふんと思っていた「暴想」の「ココログプロとか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エラーが頻発している.