検索ソフトNamazuのインストール

ホームページも少し大きくなってくると、自分で書いておきながらどこに何を 書いたのか分からなくなることが多くなってきたもので有名な日本語全文検索ソフトであるNamazuをインストールしてみた。

方法は以下の通りであり、さほど苦労はしなくても簡単にインストールできた。

インストールするソフトは、kakasi と namazu である。

KAKASI −漢字→かな(ローマ字)変換プログラムのことで下のページから最新版であるkakasi-2.3.3.tar.gzを使用 した。
 (http://kakasi.namazu.org/

# tar zxvf kakasi-2.3.2.tar.gz
# cd kakasi-2.3.2
# ./configure
# make
# make install

/usr/local/bin にインストールされる。

kakasi -hで -wオプションが表示されればOKである。

全文検索システムであるNamazuについては公式 Webサイト (http://www.namazu.org/) から最新バージョンのnamazu-2.0.12.tar.gz をダウンロードした。

# tar zxvf namazu-2.0.121.tar.gz
# cd namazu-2.0.12
# ./configure
としたが何かがないといってしかられてしまい、対応方法が表示され るのでその方法に従いFile-MMagic/ ディレクトリーに移動してそこで ./configure make などとすることでOKとなる。
再び
# ./configure
# make
# make install
 
  その後、設定ファイルの /usr/local/etc/namazu/mknmzrc と /usr/local/etc/namazu/namazurc ファイルの設定を行うが、ひな形が同ディレクトリィ内にあるのでそれをコピーして修正する。
$ cp mknmzrc-sample mknmzrc
$ADDRESS = 'anabui@anabuki.dip.jp';
#
# Network Kanji Filter nkf v1.62 or later
#
$NKF = "/usr/bin/nkf";

$ cp namazurc-sample namazurc
Index /usr/local/var/namazu/index/
Replace /var/www/html/ http://anabuki.dip.jp
Lang ja

$/usr/local/bin/mknmz --indexing-lang=ja -O /usr/local/var/namazu/index/ /var/www/html--exclude=/var/www/html/webalizer/*
でインデックスファイルの作成。
#cp /usr/local/libexec/namazu/namazu.cgi /var/www/cgi-bin でコピー後
http://anabuki.dip.jp/cgi-bin/namazu.cgi  で検索画面が表示された。
完了

ホームペー ジへの埋め込み
以下の内容をトップページに記載しそこから検索できるようにし た。

<form method="get" action="http://www.h-watanabe.miyagino.sendai.jp/cgi-bin/namazu.cgi">
<p><strong> 検索</strong> <input type="text" name="key" size="30">
<input type="submit" name="submit" value=" GO "></p>
</form>
 
自動更新
Namazuのインデックスファイルの更新を手動でやっていたのではたまらないので自動更新として
/etc/cron.daily に 以下のnamazulist.sh  ファイルを作成して夜中に起動するようにした。更新の多いページだと時間毎の実行も必要であるが、私のページなどはほとんど無いので一日一度の実行とし た。

namazulist.sh
####################
 /usr/local/bin/mknmz --indexing-lang=ja -O /usr/local/var/namazu/index/ /var/www/html/ --exclude=/var/www/html/webalizer/*


Windows 版

Namazu for Win32 とその関連ファイルのダウンロードは以下の場所から行います。

広瀬健一氏による Namazu for Win32 のサポートページ

http://www.namazu.org/windows/

以下は Namazu for Win32 を使うために必要なものです。

Namazu for Win32

プログラム本体で、前掲ページからダウンロードできます。バージョンによってファイル名は異なります。実行ファイル版や ZIP 書庫版、ソースファイルなどが公開されています。

Kakasi for Win32

分かち書き用のプログラムと辞書ファイルなどで、Namazu for Win32 のページなどからダウンロードできます。Namazu では実際には Kakasi for Win32 の辞書ファイルのみを必要とします。

ActivePerl

インデックス作成に使うための Perl インタープリタです。ActiveState(http://www.ActiveState.com/ActivePerl/) にある最新バージョンへのリンクがあります。

DCOM95

Windows95 環境で ActivePerl を使うときに必要です。以下のものをダウンロードし、ActivePrel に先立ってインストールしてください。
http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe

■ ActivePerl のインストール

ActivePerl は、ダウンロードしたファイルをエクスプローラなどから実行すれば、インストール/セットアップは自動的に行われます。以前の Perl for Win32 では環境変数の手動操作が必要でしたが、ActivePerl では自動設定です。よく分からなければ、すべてデ フォルトのままで設定を進めてください。


ここでは、Namazu for Win32(以降は Namazu と表記) と Kakasi for Win32(以降は Kakasi と表記)のインストール/セットアップを行います。Perl(ActivePerl)はすでにインストール済みですね。それなら OK。

以降では Namazu と Kakasi を C: ドライブのルートディレクトリ直下にそれぞれのためのサブディレクトリを作成してインストールするものとします。以前のバージョンとちがい、Namazu 2.0 はデフォルトではルートディレクトリ直下へのインストールでないとうまく動作しないようです。


■ Kakasi のインストール

Kakasi のインストールは以下のようにします。

(1) フォルダ \kakasi を作成

まず、エクスプローラなどでドライブのルートにフォルダ \kakasi を作成します。

(2) 配布ファイルを展開

ダウンロードした ZIP 書庫ファイルをアーカイバを使ってフォルダ \kakasi に展開します。展開後は以下のようなフォルダ構成になるでしょう。

KAKASIのインストール

これで Kakasi のインストールは完了です。Kakasi を Namazu から使う場合は、Kakasi についてはこれ以上のことをする必要はありません。Kakasi を単独で使う場合は、環境変数の設定などの作業が必要になりますが、これについては \kakasi にある説明ファイル README-ja.win32 を参照してください。

なお、Namazu から利用するのは、実際には \kakasi\share\kakasi にある 2 個の辞書ファイルだけなので、これらを他の場所(たとえば \namazu 内など)にコピーして使うこともできます。この場合、他の Kakasi の関連ファイルはすべて削除してもかまいません。ただし、これらの辞書ファイルのパスを示す環境変数も修正する必要があります(後記参照)。


■ Namazu のインストール/セットアップ

Namazu のインストールは以下のようにします。

ダウンロードした EXE ファイルにはインストーラが組み込まれているので、これをエクスプローラなどから実行すると、以下のように作業が進みます(Windows 2000 の場合)。

Namazuのインストール(1)

Namazuのインストール(2)

Do you wish to proceed? [Y/n]」と聞かれたら、「Y」にします。す ると、以下の ように、環境変数の設定などが自動的に行われていく様子が観察できるでしょう。

Namazuのインストール(3)

次に、「Are you shure to install perl modules ? [Y/n]」と聞かれ たら、これも 「Y」にします。これは Perl モジュールをインストールするかどうかを選択するものです。モジュールって何かって?

以上でインストール/セットアップに必要な作業が行われます。最後にメモ帳が開いて Readme.txt が表示されれば、それで万事がうまく行っているはずです。(しかし、話に聞けばそうならない場合もあるそうです。―― 後述)


■ Namazu のフォルダ構成

Namazu は以下のフォルダ構成でインストールされているはずです。

namazu
Namazu の親フォルダです。
bin
Namazu 本体(namazu.exe)と Perl スクリプト、各種処理用のバッチファイルが入っています。
etc
Namazu の環境設定ファイル NAMAZURC のテンプレートが入っています。
include
インクルードファイルが入っています。
lib
ライブラリが入っています。
libexec
Namazu を CGI で使うときの実行プログラム namazu.cgi.exe が入っています。
man
man ファイルが入っています。
obsolete
Build 522 以前の ActivePerl 用モジュールなどが入っています。
share
各種の共有ファイル、日本語/英語のドキュメント、フィルタ用スクリプト、HTML 部品などが入っています。
var
検索用インデックスファイルが格納されるフォルダです。
x86
いくつかのライブラリのアーカイブが入っています。


■ インストール/セットアップで行われたこと

次に、Namazu のインストーラが何をしたかを確認しておきます。

(1) Windows95/98/Me の場合

Windows95/98/Me に Namazu をインストールすると、そのインストーラはパス \namazu\bin をシステムの環境変数 PATH に追加するなど、以下の設定を autoexec.bat に追加します。

 REM ###### Namazu for Win32 Environment variable setting
 SET PATH=C:\namazu\bin;%PATH%
 SET NAMAZURC=C:\namazu\etc\namazu\namazurc
 SET NAMAZULOCALEDIR=C:\namazu\share\locale
 SET MKNMZRC=C:\namazu\etc\namazu\mknmzrc
 SET HOME=C:\namazu
 SET LANG=ja_JP.SJIS

 REM ###### kakasi for Win32 Environment variable setting
 SET KANWADICTPATH=C:\kakasi\share\kakasi\kanwadict
 SET ITAIJIDICTPATH=C:\kakasi\share\kakasi\itaijidict

Namazu のバージョンアップのたびにこの設定を autoexec.bat に追加されないためには、以下の行を autoexec.bat の先頭に入れておきます。

 REM !!! DO NOT MODIFY !!!

(2) Windows NT/2000 の場合

Windows NT/2000 に Namazu をインストールすると、そのインストーラは [コントロールパネル] - [システム] - [環境] タブのシステム環境変数 PATH に、パス \namazu\bin を追加し、さらに以下の環境変数を新規に追加します。


 HOME   C:\namazu
 ITAIJIDICTPATH   C:\kakasi\share\kakasi\itaijidict
 KANWADICTPATH   C:\kakasi\share\kakasi\kanwadict
 LANG   ja_JP.SJIS
 MKNMZRC   C:\namazu\etc\namazu\mkmnzrc
 NAMAZULOCALEDIR   C:\namazu\share\locale
 NAMAZURC   C:\namazu\etc\namazu\namazurc

★ それぞれの環境変数について

  • 環境変数 HOME は、Namazu のホームディレクトリを指定するものです。
  • 環境変数 ITAIJIDICPATH と KANWADICTPATH は、Namazu から参照する Kakasi の辞書ファイルの場所を指定するものです。
  • 環境変数 LANG は、Namazu を日本語環境で利用するための指定です。
  • 環境変数 MKNMZ は、MKNMZ コマンド(\namazu\bin\mknmz.bat)のための環境設定ファイルへのフルパスです。MKNMZ コマンドは検索インデックスを作成するときに使います。
  • 環境変数 NAMAZULOCALEDIR は言語情報ファイルがどこにあるかを指定するものです。
  • 環境変数 NAMAZURC は Namazu の環境設定ファイルへのフルパスです。

■ mknmzrc と namazurc

Namazu のインストール/セットアップによって、c:\namazu\etc\namazu に mknmzrcnamazurc という 2 つのファイルが作成されます。これらは、それぞれインデックス作成コマンド mknmz(\namazu\bin\mknmz.bat)のための環境設定ファイル(mknmzrc)と、Namazu 本体のための環境設定ファイル(namazurc)です。

mknmzrc はデフォルトではすべての内容がコメントアウトされています。特に理由がなければ、このまま使いましょう。つまり、mknmzrc については何もする必要はありません。もしもあなたがデフォルトの内容とは異なる内容でインデックスを作成する場合は、mknmzrc を適切に編集しなければなりません。たとえば、インデックス対象ファイルを制限したい場合は、変数 $ALLOW_FILE$DENY_FILE などで指定される部分を編集することになります。

一方、Namazu の環境設定フアイルが namazurc です。namazurc は Namazu のインストールによって自動作成されますが、何かの理由でそれを失った場合は、テンプレートファイル \namazu\etc\namazurc-sample.win32 を使って新規に作成します。

namazurc は、Namazu のインストーラによってすでにその内容が以下のように設定されているはずです(コメント部分を削除しています)。

 Index  C:\namazu\var\namazu\index
 #Replace  /home/foo/public_html/ http: //www.foo.bar.jp/~foo/
 #Logging  off
 Lang  ja_JP.SJIS
 #Scoring  tfidf
 #EmphasisTags  "<strong class=\"keyword\">"  "</strong>"
 #Template  /usr/local/var/namazu/index
 #MaxHit  10000
 #MaxMatch  1000
 #ContentType  "text/x-hdml"

Index C:\namazu\var\namazu\index ―― Index 指令は、インデックスの格納場所を指定します。項目間は半角スペースまたはタブで区切ります。

#Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/ ―― Replace 指令は、Namazu による検索では通常はファイル名の先頭にディレクトリ名を入れて検索結果を出力しますが、CGI で使う場合はそれでは困るのでディレクトリ名部分を URL に置き換えるためにあります。この指令を有効にするときは行の先頭にある文字 # を削除します。CGI を利用する場合の設定については後述します。なお、Replace 指令は複数の定義を行うことができるので、たとえばバーチャルドメインサービスを行っている場合、ドメインごとの定義を行うことが敵増す。

#Logging off ――Logging 指令は、検索に使われたキーワードのログを残すかどうかを指定します。残さない場合は、# を削除して行を有効にします。デフォルトではログを取ります。

Lang ja_JP.SJIS ―― Lang 指令は、使用する言語を指定します。Namazu を日本語環境で使うときは ja_JP.SJIS にします。英語環境で使うときは行頭に # を入れます。

#Scoring tfidf ―― Scoring 指令は、スコアの重みづけ方法を指定します。デフォルトは simple です。TF IDF 法にする場合は先頭の # を削除します。IF IDF 法については、\namazu\share\namazu\doc にある manual.html を見てください。
重みづけとは、ドキュメント中の HTML タグの種類やその出現回数に応じてドキュメントの重要度を決めるものです。以下の HTML タグが評価されます。
<TITLE> <H1>〜<H6> <A> <STRONG> <EM> <CODE> <KBD> <SAMP> <CITE> <VAR>
対象ページが HTML の正しい論理構造を持っている場合は重みづけの効果があります。

#EmphasisTags "<strong class=\"keyword\">"  "</strong>" ―― Namazu 2.0 からは HTML ドキュメントの検索でヒットした部分を強調表示できるようになりました。強調表示を行うには行頭の # を削除します。これについては、メニュー「CGI で Namazu を使う」を見てください。

#Template /usr/local/var/namazu/index ―― Template 指令は、CGI で Namazu を使う場合に検索トップページや結果表示ページで使う HTML 部品の場所を指定します。これについては、メニュー「検索フォームをカスタマイズ」を見てください。

#MaxHit 10000 ―― MaxHit 指令は、1 回の検索によるヒット件数の上限を指定します。ここで指定した数よりも多くのドキュメントが見つかっても、それらは無視されます。

#MaxMatch 1000 ―― MaxMatch 指令は、検索によってマッチする語の上限を指定します。

#ContentType "text/x-hdml" ―― ContentType 指令は、HTML 文書以外のテンプレートファイルを利用する場合に、その Content-Type: を指定します。

この段階では namazurc ファイルの内容を変更する必要はありません。


■ トラブル?

前掲の mknmzrc と namazurc とは Namazu の動作のために不可欠のファイルですが、環境によってはこれらが自動生成されず、あるいは空のファイルしか作成されず、テンプレートファイルまで空になっ てしまうことがあるそうです。

この場合、基本的には Namazu のインストールフォルダにある Readme.txt を見て手作業でセットアップをすればよいのですが、ひとまず前掲の namazurc をテキストエディタなどで作成して c:\namazu\etc\namazu に保存すれば、それでうまく Namazu を動作させられることもあります。mknmzrc の方はもともとデフォルトではすべての指令が無効化されているので、空のファイルのままであったとしても同じことですね。


■ 動作を確認する

これで Namazu が使えるようになったはずです。さっそく動作を確認しましょう。コマンドプロンプト(MS-DOS プロンプト)で以下のコマンドを実行します。

C:\> namazu --help

help オプションの前にハイフン(-)が 2 個あります。これで Namazu のコマンドラインオプションについてのヘルプが表示されれば問題はありません。



前ページ