CGI スクリプトの利用

【 Namazu 】

【 インデックスの自動化 】
これを毎回サイト更新するたびに、手動で行うのはちょっと手が焼けますね。
そこで、Windowsタスクスケジュールを利用し、このインデックス作成作業を自動化してしまいます。
メモ帳を新規作成し開きます。
下記の内容を自分の環境に合わせて入力し、メモ帳を閉じます。
各ディレクトリの指定内容はこちらから確認してください。
mknmz -O D:\www\public_html\cgi-bin\namazu\saru D:\www\public_html
他のインデックス等、複数作成される場合には下記のように記入します。
下記は、" D:\www\public_html2 "にあるHTMLファイルを「monkey」ディレクトリにインデックスを作成する物を追加記入した物です。
call mknmz -O D:\www\public_html\cgi-bin\namazu\saru D:\www\public_html
call mknmz -O D:\www\public_html\cgi-bin\namazu\monkey D:\www\public_html2
閉じたメモ帳のファイル名を任意のファイル名に変更し、ファイル拡張子を「.bat」に変更します。
判りやすいようなファイル名で私は「autoindex.bat」としました。
この「autoindex.bat」を任意の場所へ移動します。
どこでも構わないのですが、ちなみに私は " C:\namazu\ " の中へ移動しておきました。
このファイルを実行する事によって、Namazuのインデックスファイルを作成する事が出来ます。
これをWindowsのタスクスケジュールに登録してしまい、毎回自動実行してしまえば自分で実行する手間が省けます。
コントロールパネルからタスクをクリックします。
「スケジュールされたタスクの追加」をクリックします。
img140
参照ボタをクリックし、autoindex.batを選択します。
img141
タスクの実行を「日単位」にチェックし、「次へ」ボタンをクリックします。
img142
実行する時間を指定します。
ここではWEB閲覧者のアクセスの少なくなる時間を指定します。
img143
サーバーがインストールしてあるPCのWindowsユーザー、パスワードを入力します。
img144
これで、スケジュールされました。
「完了」ボタンをクリックし、終了させます。
img145
タスクの中には、スケジュールされたアイコンが表示されます。
実行時間などを変更する場合には、このアイコンをクリックし、プロパティ画面を開き変更します。

以上で、Namazuのインデックス自動化作業は終了です。
サイト更新を行っても、毎日自動で指定した時間にインデックス化がされますので、手動でインデックス化を忘れたと言う事は防ぐ事が出来ます。
【 高速な検索を維持する為には 】
高速な検索を維持する為に注意する点としては、更新したHTMLファイルが毎日大量にある場合など、そのままインデックス化を行なうと古いインデックスデータに2重3重に追加登録(重複化?)されてしまうのか、日に日に検索が遅くなってしまいます。
※新規で作成されたHTMLファイルの場合は、その限りではありません。
それを回避するには、1度作成されたインデックスを削除し、新たにインデックス化する事で高速に検索する事が可能になります。
ちなみに私が使用している環境ではCPU:233Mhz、RAM:128MB、HTML:約1,100ファイルで、インデックスが重複化されたもので検索をすると約9〜13秒でしたが、1度削除し、新たにインデックスを作成した所、約0.8〜1秒で検索が可能になりました。
遅いと感じるようになったら、1度インデックスを削除して新たに作成してみることをお奨めいたします。
下記は毎回、元々有るインデックスを削除し、新たに毎回インデックスを作成する記述です。
メモ帳を新規作成し、中には同様に自分の環境に合わせて記述を行い、閉じたメモ帳のファイル名を任意のファイル名に変更してファイル拡張子を「.bat」に変更します。
これを利用すると、更新ページがなくても毎回作成する事になりますので、大量にHTMLが有る場合には多少、インデックス化するまでに時間が掛かります。
各ディレクトリの指定内容はこちらから確認してください。
del /q D:\www\public_html\cgi-bin\namazu\windows\*.*
del /q D:\www\public_html\cgi-bin\namazu\server\*.*
mknmz -O D:\www\public_html\cgi-bin\namazu\windows D:\www\public_html\windows
mknmz -O D:\www\public_html\cgi-bin\namazu\server D:\www\public_html\server

見て解るように、上の2行で元々有るファイルを削除指定し、下の2行で作成をする指示になっています。
PCの能力によって実行速度が変わることは間違いないですが、この事により233MHzでも5,000〜6,000ページの検索はストレス無く行う事が出来そうです。
現在、総検索対象ファイルは2,500ページを超えましたが低スペックのPCながらストレス無く稼動中です。

その他の方法としては
【Namazu付属の gcnmz を利用する】
重複化?は仕様のようで予め、お掃除道具?のgcnmzがNamazuには用意されています。
同様にバッチファイルとしてこちらを利用しても上記と同じ効果が得られます。
作成しておくと自動で重複化してしまったインデックスのゴミをお掃除をしてくれますので、作成をしたインデックスファイルを削除する事もなく利用できるので、こちらの方がお勧めかな?
どうしてもインデックス対象のファイルが増えてしまうと、新規作成をするとインデックス作成に時間が掛かってしまいますのでこちらの方が短時間で済むでしょう。
上記と同じディレクトリを指定した場合、下記のように作成します。
mknmz -O D:\www\public_html\cgi-bin\namazu\windows D:\www\public_html\windows
gcnmz D:\www\public_html\cgi-bin\namazu\windows
mknmz -O D:\www\public_html\cgi-bin\namazu\server D:\www\public_html\server
gcnmz D:\www\public_html\cgi-bin\namazu\server

このようにしておくことで、毎回インデックス作成時にゴミも取り除く事ができるので同様に検索はストレス無く行なう事が出来そうです。