Top > Computer > Namazu

日本語全文検索システム Namazu

この文書は Namazu バージョン1系列をもとにしています. バージョン2系列についての記事は現在作成中です.
 また,その後このサイトの検索CGIの設置場所を変更したため, 以下のリンクの中には無効になっているものがあります.
 以下が従来の本文です.

  @nifty:@homepage では cgi が使えるので,日本語全文検索システム namazu を導入してみました. 自分のサイトを検索できるようにする, Windows 環境での手順のメモを下に紹介します.

  1. 必要なもの
    1. ディレクトリ構成
  2. インデックスの作成まで
    1. namazu と kakasi のインストール
    2. 動作確認とインデックスの作成
  3. perl スクリプトのインストールと動作確認
  4. 設定
  5. アップロード
  6. 自分のサイト以外も検索するには
  7. 関連リンク

§1 必要なもの

(1) ディレクトリ構成

筆者の場合のディレクトリの関係をまとめると下のようになる. 以下この例で説明する.

* html のパス

ローカルパス  D:¥home¥web¥je7ida¥
FTP パス ftp://ftp4.nifty.com/homepage/
実際のパス http://homepage1.nifty.com/je7ida/

* cgi のパス

ローカルパス  D:¥home¥web¥cgi-bin¥
FTP パス ftp://ftp4.nifty.com/cgi-bin/
実際のパス http://hpcgi1.nifty.com/je7ida/

§2 インデックスの作成まで

(1) namazu と kakasi のインストール

まず namazu と kakasi をインストールする. 入手したファイルを実行すればインストールが行われる. デフォルトではそれぞれ

C:¥usr¥local¥namazu C:¥usr¥local¥kakasi

>にインストールされる.他のディレクトリへインストールしてもよいが, UNIX に由来をもつプログラムは ¥usr 以下へインストールするのがデフォルトである場合が多いので, このディレクトリにインストールしたほうが整理しやすいだろう.

さらに,実行ファイルが置かれるディレクトリへパスを張る.ここでは

C:¥usr¥local¥namazu¥bin C:¥usr¥local¥kakasi¥bin

>にパスを張ればよい. しかしこれでは環境変数 PATH が長くなりすぎるので, この2ヶ所にある実行ファイルを C:¥usr¥local¥bin にコピーし, このディレクトリだけに PATH を張ることにした(あまりおすすめしません). たとえばC:¥AUTOEXEC.BATPATH で始まる行を次のように記述する.

PATH C:¥usr¥bin;C:¥usr¥local¥bin; C:¥cygnus¥cygwin-b20¥h-i586-cygwin32¥bin; C:¥WINDOWS;C:¥WINDOWS¥COMMAND; C:¥usr¥local¥perl¥bin;C:¥

(2) 動作確認とインデックスの作成

DOS プロンプトを開き,D:¥home¥web¥cgi-bin に移動する.

mknmz D:¥home¥web¥je7ida¥↓

>(ここで "↓" はリターンキーをあらわす)を実行すると, D:¥home¥web¥cgi-bin にインデックスファイルが生成される. 画面に処理しているファイルの名前が表示されていく. はじめてインデックスを作るときは,かなり時間がかかる. できあがったら, 適当な単語(ここでは「ジジ」)で検索が正常にできるか調べてみる:

namazu ジジ .↓

>検索結果が画面に表示されるはずだ. なお,ディレクトリ指定のための最後のピリオドを忘れないこと.

§3 perl スクリプトのインストールと動作確認

C:¥usr¥local¥namazu¥contrib¥pnamazu-98.12.16.tgz から pnamazu.cgi を解凍し,D:¥home¥web¥cgi-bin におく. さらにこのファイルの名前を namazu.cgi に変更する. ドキュメント pnamazu.html もながめておこう. perl がインストールされているなら,

perl namazu.cgi↓

>と入力すると,ずらずらと字化けした出力が得られるはずだ.次に

perl namazu.cgi > _tmp.html↓
start _tmp.html↓

>のように入力すれば,検索語入力画面が開く. 1行目に Content-Type: text/html とよけいなものが表示されているが,これで正しい. 以上,動作確認が終わったら _tmp.html は削除しておく.

実際にローカルで検索を行わせてみるには, ローカルに http サーバを稼働させる必要がある. 筆者は Apache を導入したが,完全な設定ができたら報告するつもりである.

§4 設定

namazu.cgi の1行めは, サーバの perl の置き場所によっては変更が必要だが, @nifty の場合はそのままで良い.

次に設定ファイル .namazurc を作成する. C:¥usr¥local¥namazu¥lib¥namazu.conf-distD:¥home¥web¥cgi-bin にコピーし, 名前を .namazurc に変更し, 環境に合わせてこのファイルを編集する. ここでは REPLACE だけ変更すればよい. 下のように設定した.

#INDEX          C:¥usr¥local¥namazu¥index
REPLACE /D|/home/web/je7ida/     http://homepage1.nifty.com/je7ida/
#BASE           file://localhost/home/foo/documents/
#LOGGING        OFF
#LANG           ja
#SCORING        TFIDF

>つまり,検索結果がたとえば /D|/home/web/je7ida/index.html なら http://www3.justnet.ne.jp/‾k-nakano/index.html に変換して表示されるようにするのである. ここで,ドライブ名の "D" は大文字で記述すること.

LANG がデフォルトの日本語 (ja)ならば, cgi が吐きだす HTML は NMZ.head.jaNMZ.body.jaNMZ.foot.ja から作られるので, これを自分の気に入るように変更する. ここで <!-- FILE --> の部分は, namazu.cgi が値等を書き込む場所の指定である. namazu.cgi の動作確認のときと同じようにして実際の見え方をチェックするとよいだろう.

§5 アップロード

FTP ソフトを使い,D:¥home¥web¥cgi-bin¥ ディレクトリのファイルをサーバの cgi-bin ディレクトリの中へアップロードする. .namazurc を ASCII, その他のファイルを binary でアップロードした.

次に namazu.cgi に実行属性を与える. サーバに送るべき文字列は quote site chmod 755 namazu.cgi だが, たとえば FTP explorer ではメニューを「ツール」「サーバにコマンド」と開き, コマンド入力ボックスに site chmod 755 namazu.cgi と入力する.

以上で作業は終了である.web ブラウザに

http://hpcgi1.nifty.com/je7ida/namazu.cgi

>(Z) と入力すると検索語入力画面が出て検索ができるはずだ.

§6 自分のサイト以外も検索するには

集めたファイルを自分のコンピュータのハードディスクの中に再構築し, 再構築ディレクトリについて namazu で処理するのが簡単だろう. 以下,この手順を手短に説明する. 詳細については各ソフトのドキュメントを参照してほしい.
  まず検索に含めたいサイトのファイルを集める. Internet Explorer 4 以降なら,購読機能を使うと楽だろう. 画像ファイル等は特に必要ないので,購読から外してよい.
  次に,Internet Explror のキャッシュから再構築を行う. 筆者が使用したのは "i.j IE5 Web Rebuilder ver.1.29" である.再構築フォルダには,D:¥var¥ie5web を指定した.
  するとディレクトリ構造は次のようになる.たとえば http://homepage1.nifty.com/index.htmlD:¥var¥ie5web¥http$¥homepage1.nifty.com¥index.html にコピーされる.

D: ¥var
¥ie5web
¥ftp$
¥ftp.freebsd.org
......
¥http$
¥163.143.173.133
¥homepage1.nifty.com
¥www.aisoft.co.jp
......
¥ie
¥nn

なお,筆者は Internet Explorer,Netscape Navigator のキャッシュを それぞれ上記の ie ディレクトリ,nn ディレクトリに置いている.
  以下,インデックスファイルを mknmz D:¥var¥http$¥ として作成し,.namazurc

REPLACE /D|/var/http$/     http://

>とすれば良いだろう.

§7 関連リンク


TOP  Email to Kunihiko Nakano(c) FEB 9, 2005