SVX日記
2005-02-09(Wed) 相手はGoogle、namazuの饗宴
はっ!! あー、よかった。夢かよ……。先日に引き続いて、再び愛用のナビホークがエラい状態で修理から戻ってくる夢を見た。前回は文字盤がノッペリとグレーになってしまっていたが、今回は計算尺がツルンとチタンカラーになっていた。あー、早く戻ってこないものか。何度もこんな夢を見るなんて、自分が思う以上にあの腕時計に執着しているのだろうか。そのうち腕時計の「妄人」になってしまったらどうしよう。
話は替わって、問題はGoogleなのである。このSVX日記も1年近くになろうとしており、自分でもあきれるほどの駄文を毎日のように大量に排出しているが、内容が以前の話題に関連するときは過去の日記へのリンクを積極的に貼ろうと心がけている。しかしながら、もう自分でも管理しきれないほどの量に達しており、リンクするべきポイントを見つけるのがイヤになるほど面倒なのである。
このSVX日記を開設した当初はtdiaryをそのまま利用していたが、title要素に日記のタイトルを入れたり、サイドバーを付加したり、Google検索のフォームを入れたり、全日記一覧機能をつけたりして徐々に機能増強を図ってきた。というのも、すべてリンクを貼るのをラクにしたいタメなのである。
でもってGoogleのサイト内検索だ。これが引っかけられないのなんの。あの神と崇められるGoogle様をしてなんだこのテイタラクは。明らかに書いたはずの単語を入れているのに出てこない。でもって、出てきたと思ったら「本日のリンク元」に引っかかっていたりする(コレはGoogleのせいではないが)。これじゃ役に立たないのである。
仕方ないのでココにきてさらに機能追加である。独自に検索機能を立てるのだ。オープンソースの検索エンジンといえば「namazu」である。tdiaryにnamazuを組み込む方法は既に確立されているので簡単である。オイラの場合、サーバがdebianなのでインストールもラクだ。@everybody apt-get! apt-get! なのである。
まずはnamazuのインストール。人によってはkakashiやchasenのインストールも必要だろう。オイラは漢字かな混じり文をfestivalに読み上げさせたり、カタカナしか出ないディスプレイに出力させたりしたコトがあったのでkakashiもchasenもインストール済みである。
apt-get install namazu2
apt-get install namazu2-index-tools
cp /usr/lib/cgi-bin/namazu.cgi /home/svx/public_html/diary/
cp /etc/namazu/namazurc /home/svx/public_html/diary/.namazurc
Index /home/svx/diary/index
Template /home/svx/diary/index
Replace /home/svx/diary/cache/html/(\d\d\d\d)/(\d\d)(\d\d).html http://www.itline.jp/~svx/diary/?date=\1\2\3
Lang ja
EmphasisTags "<strong class=\"keyword\">" "</strong>"
ContentType "text/html;charset=EUC-JP;"
tdiaryは日記のhtmlをcgiで動的に生成するので、静的なhtmlファイルが存在しない。それではnamazuが検索インデックスを作れないので、tdiaryに標準添付のsqueeze.rbというプラグインを使って、日記をhtml化する。
./squeeze.rb -p /usr/share/tdiary -c /home/svx/public_html/diary -x .html /home/svx/diary/cache/html
mknmz -c /home/svx/diary/cache/html --output-dir=/home/svx/diary/index
<CENTER><FORM method='GET' action='http://www.itline.jp/~svx/diary/namazu.cgi'>
サイト内をnamazuで<BR>
<INPUT type='text' name='query' size='16' maxlength='255'>
<INPUT type='submit' value='検索'>
</FORM>
</CENTER>
AddHandler cgi-script .cgi
5 3 * * * mknmz -c /home/svx/diary/cache/html --output-dir=/home/svx/diary/index