基本的な検索の流れ
最初にまず考えなければいけないのは、データをどのように持ち、どのようにキーワードを入力し、どのように出力するかということ。
私のホームページには「Namazu」というワケのわかんない名前のCGIプログラムを使った全文検索システムがあります。それはそれで、検索のヒット率も速度も申し分ないと思うのですが、やっぱり欠点もあります。
・ネット上だと常時接続でない限り通信料金がかかる。現状の通信環境ではまだまだ常時接続の恩恵を受けている人は少ない。
・ネット上のHTMLファイルを読み込むのに通信状態によっては時間がかかる場合がある。
・Namazuの検索システムは、あらかじめ文章の中の単語を拾い出してインデックスを作っておき、そのインデックスに対して検索をかけるので、インデックスが作られなかった言葉は検索できない。かなりヒット率は高いとはいうものの、桐ですべてのデータを検索したほうが正確な検索ができる。
などなど。
過去ログを自分のハードディスクに入れていつでも活用できるようにしたいとの要望もたまに聞くことがありますが、あまりにデータ量が膨大になりすぎて、とてもダウンロードで対応できるものではなくなっています。そういうことからも今回の企画が生まれることになりました。
また、ネット上のHTMLファイルをCD-ROMに収めるだけでは、キーワード検索ができません。そこはやっぱり桐にこだわって桐で検索システムを作っちゃおうっていうことなんです。
「HTMLファイルの内容のデータをそのまま表(TBL)にも置いて、それに対して検索をかけるのはわかるが、結果をどういう風に出力するのか?」
結果を最後まで桐を使って表示させる方法もあるかもしれないけど、その分プログラムも複雑なものになるだろうし、速度的にも問題が出てくるだろう。何より私のレベルでは絶対ついていけない。
そこで、検索はTBLに対して行い、そこでHTMLのファイル名を取得し、表示は「シェル実行」コマンドを使って、HTMLファイルをブラウザで表示させる風に作れば、割合簡単にできるんじゃないかと思いました。
ただし、検索結果はひとつとは限らないので、
「TBLのデータを検索した結果、絞り込まれた複数の記事を一覧するようなHTMLファイルをプログラム上で作成し、シェル実行でそれを表示するところで桐の仕事は終わり、それからはブラウザの操作で、そのHTMLに表示された中から希望のものをクリックして過去ログのHTMLを表示させる」
だいたいこんな流れでいいんじゃないかということで、基本コンセプトは
「gooやyahooみたいな検索フォームを桐で作りたい」
で、初日は思いついただけで何となくできそうだと安心して終わり。
二日目へ |