up | 1999-12-28

Report

squidのcacheをnamazuで検索


概要

 ブラウザのbookmarkは、いつも訪れるHPのためのショートカット機能と、おもしろいページを記録しておくデータベース機能の2つの目的で利用する。 しかし、登録数が増えるにつれてデータベースとしての利用価値は急速に失われる。 bookmarkへの登録はタイトルとURLでおこなわれるが、時間が経つにつれタイトルとHPの内容の間の記憶が薄れ、タイトル検索自身が無意味化するためと考えられる。 そのため、bookmarkへの登録を行わなくなり、毎回外部の検索エンジンを利用することになるが、初めて検索する場合と同等の手間がかかることが多く、目的のサイトに到達するのに時間がかかる。

 近年の計算機技術の進歩により、パーソナルコンピュータの性能が飛躍的に向上したため、キャッシュサーバ、WWWサーバ、簡易検索エンジンを個人で運用することが可能となっている。 そこで、従来bookmarkで行っていた機能のうちデータベース機能を提供するシステムをsquid, apache, namazuを用いて構築した。

bookmarkが役に立たないので

 普段、検索エンジンサイトを使って検索したりお気に入りのHPを訪れたりしていると、以前見たページをもう一度見たくなることがある。 あらかじめそれを予測して、もう一度見たくなりそうなHPはbookmarkに登録しておくのだが、なかなかうまく予測があたらない。 さらに、bookmarkはタイトルでの検索程度しかできないので、登録数が増えてくるとほとんど役に立たなくなる。 検索エンジンサイトを使って検索し直す場合も、初めから検索するときと同様の手間がかかり、なかなか目的のサイトが見つからない。

 そこで、squidを用いて巡回した全てのHPをcacheしておき、namazuを用いて全文検索を行うことを考えた。 これができると、自分が訪問したHPだけを検索対象にできるし、検索結果のURLはcacheされているので、高速な検索と高速なアクセスが可能となる。 プログラムや大きな画像のダウンロードを別にすると、一人の利用者が1日に巡回するHPのデータ量はせいぜい数MB程度、cacheには1ヶ月あたり100MBもあれば十分であろう。 namazuをcgiで利用すれば、全てをブラウザから行うことができ、各個人専用の検索エンジンを作ることができる。

 この目的で各ツールを見ると、ほとんどは適切な設定を行うことで実現可能であった。 唯一、namazuの検索結果の表示において登録したファイルに対するリンクしか張られないという不都合があった。 この不都合を解決するため、namazuのソースを解析してcache元のURLへのリンクも表示するように改良した。

 以下に筆者が行った変更と設定を示す。

ツールのインストールと設定

 以下のツールをインストールする。

 次にnamazuのコマンドであるmknmzをsquidのcacheファイルが取り扱えるように 変更 する。

mknmzの変更点は、以下の4点。

 検索用インデックスを作る。

 例えば、毎日22:00に検索用インデックスを更新したい場合、crontabを以下のように設定しておく。

 ここまででコマンドラインでの検索ができる。

 以下のファイルに加筆する。 これによって/usr/local/squid/cache/をhttp://your.host.jp/cache/でアクセスできるようになる。

 以下のファイルを作成する。 これによって、cacheファイルに対するリンクを正しく表示できるようになる。 なお、このファイルでは空白はスペースではなく必ずtabである必要がある。

 cgiコマンドをコピーしておく。

 利用するブラウザにはhttp proxyとno proxyにyour.host.jpを登録しておく。

 完了。 これでhttp://your.host.jp/cache/namazu.cgiにアクセスすればcacheファイルの検索ができる。


参考


de 1999-12-01 mijosxi@ike.tottori-u.ac.jp