しらぎく検索スクリプトの設置方法と使い方。
利用可能となる条件。 (平成18年10月29日 更新)
しらぎく検索スクリプトの利用可能となる条件は現在のところ以下のようになっております。
- 対象文書はシフトJISコードに限ります。
- 文字コードを変換すれば対応は可能ですが、当分の間シフトJISコード限定としておきます。
- モバイルはH"リンクを含む全端末に対応しております。
- モバイルでは一ページに五件ずつご案内します。
但し、WAP 1.0(EZウェブ旧型機)の白黒専用機では一ページの案内件数は三件となり、スニペット(本文のキーワードを含む部分)は省略されます。
- これは端末の容量制限に対応したものです。
また、H"リンクでは、使い方が異なります。詳しくはH"リンク対応サイトでの使い方をご覧下さい。
設置方法。(平成19年 4月27日 訂正)
- ダウンロードしたファイルを解凍し、「cgi-bin」内のファイルをローカルにコピーします。
- 「s.cgi」について、実行するサーヴァに併せて設定します。
- ウィンドウズIISサーヴァの場合
- mod_perl上で動作させる場合、またはmod_perl上で動作させる事を前提としている場合
- 「s.cgi」の二行目の
$system_dir='./';の右辺にCGI設置ディレクトリまでのサーヴァ内での絶対パスに変更します。 - その他の場合
- 「s.cgi」の一行目をPerlのライブラリへのパスに合せて変更します。
尚、ウィンドウズIISサーヴァ上で動作させる場合、及びmod_perl上で動作させるか動作させる事を前提として設置する場合には「s.cgi」の拡張子を適宜変更してお使い下さい。
- その場合、以下の「s.cgi」は変更に併せて適宜読み替えて下さい。
- 「sConfig.pl」の設定項目を設定します。
- 同一サーヴァ内の複数サイトに対応する場合、二つ目以降は「sConfig-○○.pl」と言うファイル名で以下の設定を行います。
以下の変数を設定して下さい。
$gzip- GZIP圧縮が可能であれば、GZIPライブラリへのパスを指定します。
- GZIP圧縮に対応していない場合は、空白文字列にします。
$this_addr- 「s.cgi」へのURIを記述します。
$max_results- 案内する件数の最大値を指定します。
- 余り大きな数にすると負荷が掛かりすぎますので、なるべく小さな値にしておくと良いでしょう。
- H"リンクでは最大三十件となります。この値が30より大きい場合であっても、三十件で検索が打ち切られます。
$template- 検索結果を配信するHTMLテンプレート文書への相対パス。
- 実際には<title>要素を書き換え、<body>要素内に検索結果を入れてHTML 4.01 トランジッショナル文書型宣言を与えて配信します。サイト内にある任意のHTML文書を指定すれば良いでしょう。
- 特にサイトデザインをCSSで行っている場合に有効でしょう。
$root_uri- 検索対象となる最上位ディレクトリへのURIを指定します。
- これより上位のディレクトリへの検索は出来ません。
- 通常のディレクトリの場合は、必ず末尾を
/にして下さい。 - CGIなどのクエリでページを指定する場合は、末尾を
=にする事で、この後ろにページへのパスを繋ぎます。
$root_dir- 検索対象となる最上位ディレクトリへの相対パスを指定します。
- これより上位のディレクトリへの検索は出来ません。
@directories- 検索対象となるディレクトリへの
$root_dirで指定したディレクトリからの相対パスを空白で区切って指定します。ここで指定したサブディレクトリは実際に検索スクリプトを呼び出す際にクエリにて指定します。
$root_dirで指定したディレクトリ自身を指定する場合は、サブディレクトリ名として.(ドット一個)を指定します。
$lang(平成18年10月22日)- 検索対象となるコンテンツの言語環境を指定します。
- 日本語では
0 - ラテン文字言語(英語など)では
1
をそれぞれ指定します。
- 現在、日本語とラテン文字言語のみサポートしております。
- ラテン文字言語の場合、案内表示は全て英語となります。
- 複数言語の混在は出来ません。
- 日本語では
$charset(平成18年10月22日)- 検索対象となるコンテンツの文字コードを指定します。
- 現在、
shift_jisとiso-8859-1のみサポートしております。 - 空の場合は
shift_jisとなります。 - 複数の文字コードの混在は出来ません。
- 現在、
$allDisp(平成18年10月28日)- PCにて、検索結果を全部一画面で表示する場合は 1とします。
- 通常は、10件毎にページを分割します。
- モバイルではこの指定に拘らずページ分割を行います。
$noLookSubdir(平成18年10月28日)- 指定ディレクトリの下位ディレクトリを検索対象としない場合に 1にします。
- 通常は、下位ディレクトリも調べます。
また、モバイルで利用される場合は、以下の変数の設定もお奨めします。 (以下、平成18年10月26日 更新)
$wapcss_uri- WAP 2.0(EZウェブ現行機及びソフトバンク次世代機)でスタイルシートを利用する場合に、そのスタイルシートのURIを記述します。
- 複数のスタイルシートは現時点ではサポートしておりません。
$imode_bg- コンパクトHTML(iモード及びソフトバンク在来機)での背景色を
#xxxxxxの形式で指定します。 $imode_fg- コンパクトHTMLでの前景色(普通の文字の色)を
#xxxxxxの形式で指定します。 $imode_hd- コンパクトHTMLでの見出しや強調箇所の色を
#xxxxxxの形式で指定します。 $imode_lk- コンパクトHTMLでの未訪問アンカーの色を
#xxxxxxの形式で指定します。 $imode_vl- コンパクトHTMLでの訪問済アンカーの色を
#xxxxxxの形式で指定します。
- 全てのスクリプトをサーヴァに設置します。
- パーミッションを指定します。
- 以下の設定はアパッチサーヴァの場合です。
- 通常のCGIとしてのみ動作させる場合
-
- s.cgi
- 700推奨。700で動作しない場合は705, 755の順に指定してみて下さい。
- sConfig.pl
- search.pl
- 600推奨。600で動作しない場合は604, 644の順に指定してみて下さい。
- mod_perl上で動作させる場合、またはmod_perl上で動作させる事を前提に設定している場合 (平成19年 4月27日 訂正)
-
- s.cgi
- 705推奨。705で動作しない場合は755に指定してみて下さい。
- sConfig.pl
- search.pl
- 604推奨。604で動作しない場合は644に指定してみて下さい。
- mod_perl上ではSuExecが使えないため、第三者権限で動作するようにして下さい。
HTML文書側での設定。 (平成18年10月31日 更新)
検索窓は以下のように記述します。
- マークアップは一例です。
<form action="検索CGIへのURI" method="get"><ul><li><input type="hidden" name="mlt" value="設定名" /></li> <!-- 「sConfig-○○.pl」で設定されたサイトの場合のみ記述 --><input type="text" name="w" /></li><li><inputtype="hidden" name="d" value="検索対象となるサブディレクトリ"/><inputtype="submit" value="検索"/><inputtype="reset" value="クリア"/></li></ul></form>
ここで、上記の値は以下のようになります。
設定名
- 「sConfig-○○.pl」で設定されたサイトの場合のみ記述するもので、この場合
○○
を設定名
に入れる事となります。- 尚、通常の「sConfig.pl」設定を利用する場合にはこの<input>要素そのものが不要となります。
- 特に第0.900版(平成19年 4月 6日)より前からお使いの場合でも、新たに設定した二つ目以降のサイトを利用するのでなければ記述は不要で、従ってHTML文書の書き換えは必要ありません。
検索CGIへのURI
$this_addrで指定したURIです。検索対象となるサブディレクトリ
@directoriesで指定した相対パスのうちの一つ以上を半角空白で区切って指定します。(平成18年10月31日)$root_dirで指定したディレクトリ自身を指定する場合は、サブディレクトリ名として.(ドット一個)を指定します。- <select>要素や<input>要素に依るラジオボタンを用いる事で、複数のディレクトリ(またはディレクトリの組み合わせ)から選択するようにする事も可能です。
- 同じサブディレクトリを複数指定した場合、初めの一つのみが有効となります。
- 検索対象サブディレクトリを複数指定する場合は、複数の
<input type="hidden" name="d">要素で指定しても構いません。 - 検索対象サブディレクトリを複数指定した場合は、初めに指定したディレクトリから順に検索されます。
また、検索後に元のページに戻れるようにしたい場合は、以下のようにtype="hidden"属性とname="r"属性を与えた<input>要素を付け加えます。 (以下、平成18年10月26日 追加)
<form action="検索CGIへのURI" method="get"><ul><li><input type="hidden" name="mlt" value="設定名" /></li> <!-- 「sConfig-○○.pl」で設定されたサイトの場合のみ記述 --><input type="text" name="w" /></li><li><inputtype="hidden" name="d" value="検索対象となるサブディレクトリ"/><inputtype="hidden" name="r" value="戻り先ページへのURI"/><inputtype="submit" value="検索"/><inputtype="reset" value="クリア"/></li></ul></form>
ここで、value属性の値となる戻り先ページへのURI
としては、
$root_uriで指定したディレクトリ基準の相対パスhttp://スキーム名で始まる絶対URI
のいずれかを指定します。
- 全く無関係なURIを指定する事も可能ですが、検索結果の表示では常に検索前のページに戻ると言うアンカーとなりますので、無関係なURIを指定しないようにして下さい。
name="r"属性を持つ<input>要素に依る戻り先の指定が無い場合は、リファラを検出出来た場合に限り、リファラを元に検索前のページへのアンカーを生成します。- リファラを検出出来なかった場合は、検索前のページへのアンカーは表示されません。
- iモードなど、一部リファラを送出しない環境もある事にご留意下さい。
使い方。 (平成18年10月28日 更新)
検索窓に検索したい言葉を入れて、ボタンを押します。
このとき、検索語には以下の決まりがあります。
- 検索語は半角は二文字以上とします
- 半角一文字は無効となります。
- 複数語句は空白で区切って指定出来ます
- 空白で区切っていない語句は一纏めになっていない限り検索されません。また、この空白は全角空白でも構いません。
- 全角文字と半角文字は別物です
- 処理を軽減するため、全角文字と半角文字の同一視は行っておりません。
- 英字の大文字小文字は半角のみのキーワードでのみ同一視します
- 全角文字を含んだキーワードでは、英字の大文字小文字は全角半角問わず全て別物とします。
- 記号は一部を除いて無効になります
- ひらがな, カタカナ, 漢字, 英数字等が有効です。記号は「-」「&」, 反復音符, 長音符等が有効です。
検索結果は十件ずつ出力されます。
続きを見たい場合は続きボタンを押して下さい。
モバイルでの使い方。 (平成18年10月28日)
モバイル端末の場合も同様になりますが、ダイヤルボタンでの操作が可能になります。
- 前の検索結果に戻る場合…7
- 検索結果を複数ページに跨って見ている場合に、前のページに戻るには7を入力します。
- 検索結果の続きを見る場合…9
- 検索結果が複数ページに跨る場合に、続きを見るには9を入力します。
- 検索ページに戻る場合…8
- 検索結果前の入力画面に戻るには8を入力します。
- 設定に依っては、検索ページ以外のページに戻る場合もあります。
- 設定に依っては、戻れない場合もあります。
尚、H"リンクでは全ての操作がダイヤルボタンに依るものとなるため、入力する番号は上記と異なります。
mod_perlに対応するには。(平成19年 4月 6日)
mod_perlに対応するには、以下の手順に従って下さい。
- 先ず、必ず通常のCGIとして設置した上で、正常に動作する事を確認して下さい。この場合、必ずmod_perlとして動作させる事を前提として設定を行って下さい(特にパーミッションは第三者権限で動作するようにして下さい)。
- CGIとして動作する事を確認した上で、mod_perlで動かすのに必要な設定を行って下さい。
この場合、主に以下の手続きが必要になると思われます。
- mod_perl上で動作させるための「s.cgi」の拡張子の変更
- 「s.cgi」の拡張子の変更に伴う「sConfig.pl」設定ファイルの変更
- 「s.cgi」の拡張子の変更に伴う変更以外はしないようにして下さい。すなわち、拡張子以外の設定は初めにCGIとして試運転を行う際に全て済ませるようにして下さい。
- mod_perl上で動作させるための「.htaccess」サーヴァ設定ファイルの変更
- この場合、以下のようにして下さい。
mod_perl1.x (アパッチ 1.x用)上で動作させる場合-
<Files ~ "\.スクリプトの拡張子$">SetHandler perl-scriptPerlHandler Apache::RegistryPerlSendHeader On#試運転中及び差替え直後に必要です。 #※試運転・差替え終了後はコメントアウト(行頭に#を付ける)して下さい。PerlInitHandler Apache::StatINC</Files> mod_perl2.x (1.99以降・アパッチ 2.x用)上で動作させる場合-
<Files ~ "\.スクリプトの拡張子$">SetHandler perl-scriptPerlHandler ModPerl::RegistryPerlSendHeader On#必ず入れて下さい。setenv PERL_SEND_HEADER On#試運転中及び差替え直後に必要です。 #※試運転・差替え終了後はコメントアウト(行頭に#を付ける)して下さい。 #※ヴァージョンに依っては Apache2::Reload となる場合もあります。PerlInitHandler Apache::Reload</Files>
- この場合、以下のようにして下さい。
- 必要な準備が済んだら、mod_perl上でスクリプトを動作させてみて下さい。
同一サーヴァ内の複数サイトに対応するには。(平成19年 4月 6日)
第0.900版(平成19年 4月 6日)から、同じサーヴァ内にある別のサイトの検索も一つのスクリプトで対応出来るようになりました。
この場合、「sConfig.pl」はその中の一つに対する設定を入れるものとなり、二つ目以降については「sConfig-○○.pl」と設定名を持ったファイル名となります。
例えば、二つ目の設定名が「SubSite」となる場合、設定ファイルは「sConfig-SubSite.pl」となります。
実際に利用するには、二つ目以降のサイトで検索を行う場合のみ、設定名を指定する必要があります。
- 第0.900版(平成19年 4月 6日)より前からお使いの場合、二つ目以降のサイトを設定するのでなければ従来と変わりありません。HTML文書も書換えの必要は全くありません
アップデートの方法。(平成19年 4月 6日 更新)
当分の間、アップデートの際には「search.pl」「Hフォルダ」のみ上書きして下さい。
- その他のファイル、特に「sConfig.pl」には重要な設定が入っておりますので、絶対に上書きしないで下さい。上書きした場合は再度設定し直さなければならなくなります。
- 尚、安全なアップデートのためにアップデート専用パッケージ (ZIP形式ファイル)もご用意しました。なるべくアップデート専用パッケージをご利用になる事をお奨めします。
第0.900版(平成19年 4月 6日)より前のヴァージョンからのアップデートでは、スクリプトを再度設定し直す必要があります。
お手数ですが、ご理解のほど宜しくお願い申し上げます。
- このため、次回のアップデートまでは、アップデート専用パッケージの配布を停止させて頂いております。