検索フォーム設置法

HOME > とほほのWWW入門 > 検索フォーム設置法
1998年8月23日版
自分自身のホームページの内容を検索する、検索フォームの設置法について説明します。

現在の wwwsrch.cgi のバージョンは Ver3.01 です。

「ブラウブ」が「ブラウザ」にマッチしてしまうというバグに対処しました。その代わり若干処理速度が落ちています。また、JISコードの検索対象ファイルにも対応しました。(Ver3.00)

perlのバージョンにより、検索結果が文字化けすることがあるというバグを修正しました。(Ver3.01)


検索機能とは?

Webサーバ上のファイルから指定した単語含むページを検索して、その一覧を表示するシステムの設置方法について説明します。

動作イメージはこちらを参照してください。

goo や Infoseek などのように、いろいろなURLを対象に検索するものではありません。 自分のWebページの中身のみ(というか、同じサーバー上の指定したディレクトリの下のみ)を検索します。

あらかじめインデックスを作成しておく方式ではなく、常に全文検索を行いますので、設置は簡単ですが、サーバーには負荷をかけてしまいます。 大規模な検索を行われる場合は、下記URLで紹介されているエンジンなどを検討してください。

日本語全文検索エンジンソフトウェアのリスト
http://www.kusastro.kyoto-u.ac.jp/~baba/wais/other-system.html

私用・公用を問わずスクリプトの使用・改造・流用は自由ですのでご利用ください。 ただし、利用上生じた不利益については保障できません。

設置方法

まず、ご利用のプロバイダ(WWWサーバー)がCGIをサポートしていることを確認してください。 .htaccess など必要な設定がある場合はサーバーの管理者の指示に従ってCGIを使用できる状態にしてください。 このページでは、ある程度CGIの基礎をご存知の方を対象に説明しています。 CGIの基礎については、「とほほのCGI入門」を参照してください。

サーバー上に次のファイルを用意してください。

wwwsrch.htmlの中身は以下のようにしてください。 <FORM>〜</FORM>の部分を他の適当なHTML文書に貼り付けても構いません。
    <HTML>
    <HEAD>
    <TITLE>SEARCH</TITLE>
    </HEAD>
    <BODY>
    <FORM METHOD=POST ACTION="cgi-bin/wwwsrch.cgi">
    <INPUT TYPE=text NAME="WORD">
    <INPUT TYPE=radio NAME="ANDOR" VALUE="and">AND
    <INPUT TYPE=radio NAME="ANDOR" VALUE="or" CHECKED>OR
    </FORM>
    </BODY>
    </HTML>
もしくは単に、任意のHTMLファイルからwwwsrch.cgiへのリンクを張ってください。
    <A HREF="cgi-bin/wwwsrch.cgi">検索</A>
wwwsrch.cgiは、wwwsrch.txtを表示して、wwwsrch.cgiという名前になるように保存したものを利用してください。ファイルをサーバーに転送する前に、wwwsrch.cgi の内容を以下の説明にしたがって修正してください。

サーバー上の perl の置き場所が異なる場合は wwwsrch.cgi の1行目を適切に変更してください。たとえば、BIGLOBEの場合は「#!/usr/mesh/bin/perl」となります。

標準の設定では *.htm と *.html のみを検索するようになっていますが、*.txt も検索する場合は、「$sufix{".txt"} = 1;」という行を追加してください。

検索対象のディレクトリ名を「$target_dir = '..';」で指定してください。「..」の箇所には wwwsrch.cgi から見た、検索対象ディレクトリの相対パス名か、絶対パス名を指定してください。

検索にマッチすると、ファイル名や、タイトル、マッチした行の前後2行ずつを表示します。「$how_many_lines = 2;」という行を「$how_many_lines = 5;」のようにすると、前後5行ずつを表示します。

準備ができたらwwwsrch.cgiをサーバーに設置(転送)します。それぞれの改行コードや、パーミッションを次のようにしてください。(多くのサーバーはUNIXですが、たまにWindows NTなどもあるようです。)

ファイルパーミッション改行コード
wwwsrch.htm通常通りどちらでもよい
wwwsrch.cgi755サーバーに合わせる
jcode.pl644サーバーに合わせる
index.html通常通りどちらでもよい

jcode.plは、 ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ あたりから入手したものを設置してください。 パーミッションは 644、FTPでの転送時はテキスト(ASCII)モードで転送してください。

index.htmlは、cgi-binの下にどんなスクリプトが置いてあるのか知られないためのセキュリティ改善です。 中身はなんでもよいので、とにかく置くようにしましょう。

動かない時は?

検索フォームを設置してもうまく動かない時は、CGIスクリプト作成時の注意を参照して原因を解明するか、プロバイダやサーバー管理者に問い合わせてください。

説明が難しくて分からない場合や、CGIの使用例は動作するのに、検索フォームが動作しない場合は「とほほへの質問」を受け付けています。


Copyright(C) とほほ ( http://www2e.biglobe.ne.jp/~s-hasei/ )