唐突ですが、私はNamazu という検索ツールを愛用しています。 もう便利で手放せないです。製作者の方々には感謝してます。ほんと
具体的にどのように運用しているかというと、 IO-DATA の LANDISK (要は Samba と Apache が組み込まれた Linux マシン)に Namazu を仕込み、
という訳で、入手したページは LANDISK の中に入っています。 この際、Namazu 検索の結果上のリンク先を、LANDISK の中に溜め込んだファイルにするか、実際のページにするか悩みます。 キャッシュにすると速いしサーバやネットワークに負荷をかけずに済みます。 特に我が家のように電話局から遠く、ADSL のくせに 200Kbps も出ない所ではありがたいです。 しかし一方、キャッシュだけ見ていると最新の情報が 得られない可能性も否定できません。
そこで Google のキャッシュのように 検索結果においてオリジナルとキャッシュの両者が出るようにできないもんかと 改造してみました。
パッチは こちら です。 Namazu 2.0.12 用として作りましたが、 公開に当たって 2.0.13 でも試して見ましたが大丈夫なようです。 ちなみに当て方は namazu-2.0.12/src ディレクトリの下で
$ patch < namazcache.pach |
要は NMZ.result にキャッシュ用のコマンド ${cache} を作りました。 こいつは ${uri} とほとんど同じ動きをしますが、唯一の違いは一番最初の文字が @ になることです。 後はこれを使って .namazurc の Replace を使って適当に変換します。
分かる人にはこれだけで分かると思いますが、 念のため以下に私の場合の構築例を記します。 ちなみに私はインデックス生成は Windows から Namazu for Win32 を使ってやってます。 cron 等を使って LANDISK で定期的に自動更新とかも出来るとは思います。 おそらくその方が速いでしょう。不精なだけです。 いろいろ長く書いてますがミソは 7 と 10 です。
< FORM ACTION="/~foo/PageCopy/NamazuBin/namazu.cgi" METHOD="get" > 検索 < INPUT NAME="query" SIZE=40 > < INPUT TYPE="submit" VALUE="Search" > < /FORM > |
Index ../NamazuIndex Replace /L\|/htdocs/PageCopy/Pages http:/ Replace @L\|/htdocs/PageCopy .. |
d:\tools\urlcommand\urlget $U L:\htdocs\PageCopy\Pages\$u |
mknmz -O L:/htdocs/PageCopy/NamazuIndex L:/htdocs/PageCopy/Pages |
< dd > < a href="${cache}" > キャッシュ < /a > (${size} bytes)< br > < br > |
後で考えると, なんかこんなパッチを当てなくても, 上記 10 の手順で
< dd > < a href="X${uri}" > キャッシュ < /a > (${size} bytes) < br > < br > |
Replace /XL\|/htdocs/PageCopy .. Replace /L\|/htdocs/PageCopy/Pages http:/ |
Replace の順が重要なので, もしかしたら逆かもしれませんが.