酒日記

2001 03 01

Thu, 01 Mar 2001

モルツ (5% × 1000 ml)

酒日記、つけはじめてから半年を記念して(?)全文検索を作ってみる。

データは PostgreSQL に入っているので、正規表現を使って

SELECT * FROM dairy WHERE comment ~* 'keyword'

で検索。安直。データ件数はまだ数百件だからこれで問題ないでしょう。このペースで増えるなら 一万件にはまず到達しないし(^^;

最初 PHP3 でスクリプトを書いてみたが、最近使ってなかったのと、どうも正規表現があれだなあ (<単に Perl の正規表現に慣れているだけ) ということで、結局 mod_perl + CGI::Application + DBI で書き直し。HTML::Template モジュールを使うと( PHP と違って) スクリプトと HTML をきれいに分離できるので嬉しい。
# スクリプトの中に "<BR>" とか混じっちゃうと気持ち悪い。

検索は実際のページを置いているプロバイダ(GOL)ではなくて家庭内サーバの aqua (24時間稼働)でやるので、 HTTP のポートだけをルータからポートフォワーディングの設定。外に開放。

フレッツで常時接続しているので、接続が切れて IP アドレスが変わると困る、 というわけで、LWP::UserAgent を使ってルータの管理ページを引っ張ってきて現在の IP アドレス取得 (いまいちスマートじゃないな)、Net::FTP を使ってその情報をサーバの search.html に反映させるスクリプトを書く。

こいつを cron で定期的に回してやれば、接続が切れても外に FTP する時に自動発呼するので大丈夫。 もっとも プロバイダはASAHI ネットの月額800円コースなのだが、 ここ一ヶ月接続が切れたことはなかったり。あまり気にしなくていいのかも。
# aqua で RC5-64 とか ntp とかが動いてて、 定期的にパケットが飛んでるから切られないのかな。


元老院 (25% × 250 ml)


powered by blosxom