Namazu Memo

フリーで高機能な日本語全文検索システム『Namazu』を Windows環境に構築し、他のマシンからCGIを利用して ブラウザ経由で検索を可能にするためにメモ。

(Google DesktopやWindows Searchでは 他のマシンから検索することができず不便なので…)

目的

以下の二つが主な目的。

  • イントラネット内で日本語の検索システムを構築すること。
  • ブラウザ経由で複数マシンから検索システムを利用可能とすること。

準備

『全文検索システム Namazu for Windows』のサイトから最新版の 「Namazu for Windows 2.0.xx (アーカイブxxx)」をダウンロードしてくる。
(以降は、「Namazu for Windows 2.0.20 (アーカイブ001)」をベースに 説明します)

次に、『ActiveState』のサイトから「ActivePerl5.8.xx」をダウンロードしてくる。
「ActivePerl 5.12.xx」や「ActivePerl 5.10.xx」をダウンロードしないように 注意。「Namazu for Windows 2.0.xx」は「ActivePerl5.8.xx」上でしか 動作しません。

MS Officeに付属する「一太郎文書コンバータ」、及び、 「Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック」を 以下のサイトに従いインストールする。


インストール

1.ダウンロードしてきた「ActivePerl5.8.xx」を実行してActivePerlをインストール。
特に何も変更せずにインストールするだけでOKです。

2.ダウンロードしてきた「nmz2.0.20.001-win32.zip」を展開。
展開してできた「README-ja.txt」にインストールの詳細は記述されている。

3.コマンドプロンプトを起動し、「nmz2.0.20.001-win32.zip」を展開した ディレクトリに移動する。
(コマンドプロンプトはしばらく使うので開いたままにしておいてく)

4.コマンドプロンプトで以下のコマンドを実行するとインストールウィザードの画面が出てくるので、 ライセンスに同意してインストールする。

redist\vcredist_x86.exe

5.コマンドプロンプトで以下のコマンドを入力し、「msvcr71.dll」をコピーする。
すでにファイルが存在する場合は上書き確認されるので、「No」で答える。

copy dll\msvcr71.dll C:\windows\system32\

6.「nmz2.0.20.001-win32.zip」を展開したディレクトリの中に「namazu」と 「kakasi」が存在するので、それらを「C:\」にコピーする。

7.コマンドプロンプトで以下のコマンドを実行する。

ppm-uninst
ppm-inst

ここで何らかのエラーで「Fail」している場合、インストールしたActivePerlの バージョンが「ActivePerl5.8.xx」でない可能性が高い。
再度、インストールしたActivePerlのバージョンを確認する。
(「ActivePerl5.12.xx」や「ActivePerl5.10.xx」では動きません)

8.以下の環境変数を設定する。

変数名:PATH
変数値:C:\namazu\bin;
変数名:HOME
変数値:C:\namazu
変数名:LANG
変数値:ja_JP.SJIS
変数名:NAMAZURC
変数値:C:\namazu\etc\namazu\namazurc
変数名:MKNMZRC
変数値:C:\namazu\etc\namazu\mknmzrc
変数名:NAMAZULOCALEDIR
変数値:C:\namazu\share\locale
変数名:KANWADICTPATH
変数値:C:\kakasi\share\kakasi\kanwadic
変数名:ITAIJIDICTPATH
変数値:C:\kakasi\share\kakasi\itaijidi
変数名:pkgdatadir
変数値:C:\namazu\share\namazu

9.「C:\namazu\etc\namazu」に移動し、以下のファイルを同一フォルダに作成する。

「mknmzrc-sample.win32」をコピーして「mknmzrc」を作成する。
「namazurc-sample.win32」をコピーして「namazurc」を作成する。

10.ブラウザ経由でCGIを実行可能とするために「C:\namazu\libexec」ディレクトリ内の 「namazu.cgi.exe」をコピーして、ウェブサーバのCGI実行可能なディレクトリに置きます。
コマンドプロンプトで「C:\namazu\etc\namazu」に移動し、以下のコマンドを実行。

COPY namazurc-sample.win32 .namazurc

上記コマンドで作成された「.namazurc」を「namazu.cgi.exe」と同じディレクトリに置く。

11.Apacheの「httpd.conf」の最終行に以下の2行を追記。

SetEnv NAMAZURC "C:/namazu/etc/namazu/namazurc"
SetEnv NAMAZULOCALEDIR "C:/namazu/share/locale"

動作確認

コマンドプロンプトを立ち上げ、「C:\namazu\pltests」に移動し、以下のコマンドを実行する。

perl alltests.pl

実行結果が「All XX tests passed」となれば良い。
私の環境では以下のように「FAIL: env.pl」となったが、問題なく動いている模様。

  *** starting alltests.pl
FAIL: env.pl
PASS: mknmz-1.pl
PASS: mknmz-2.pl
PASS: mknmz-4.pl
PASS: gcnmz-1.pl
PASS: mknmz-5.pl
PASS: mknmz-6.pl
PASS: mknmz-7.pl
PASS: mknmz-8.pl
PASS: mknmz-10.pl
PASS: mknmz-12.pl
PASS: mknmz-14.pl
PASS: mknmz-15.pl
PASS: mknmz-16.pl
PASS: mknmz-17.pl
PASS: mknmz-18.pl
PASS: idxdiff-1.pl
PASS: idxdiff-3.pl
PASS: namazu-1.pl
PASS: namazu-2.pl
PASS: namazu-3.pl
PASS: namazu-4.pl
PASS: namazu-5.pl
PASS: namazu-6.pl
PASS: namazu-7.pl
PASS: namazu-8.pl
PASS: namazu-9.pl
PASS: namazu-10.pl
PASS: namazu-11.pl
PASS: namazu-12.pl
PASS: namazu-cgi-1.pl
PASS: namazu-cgi-2.pl
PASS: namazu-cgi-3.pl
PASS: namazu-cgi-4.pl
PASS: namazu-cgi-5.pl
PASS: namazu-cgi-7.pl
PASS: namazu-cgi-8.pl
PASS: namazu-cgi-9.pl
PASS: namazu-cgi-10.pl
PASS: namazu-cgi-12.pl
PASS: kakasi-2.pl
====================
1 of 41 tests failed
====================

インデックスの作成・検索のテスト

インデックスの作成

コマンドラインからインデックスの作成テストをしてみます。
以下の例は「C:\files\」ディレクトリ配下のインデックスファイルを 「c:\namazu\var\namazu\index」に作成する例。

mknmz -O C:\namazu\var\namazu\index C:\files\

上記のオプションでは、日本語のファイル名がURIエンコードされてしまいます。
日本語ファイル名を日本語のまま検索結果に表示させたい場合はインデックス作成時に 「-U」オプションを付与します。

mknmz -U -O C:\namazu\var\namazu\index C:\files\

検索のテスト

コマンドプロンプトで検索してみます。

namazu "テスト"

結果結果が返却されれば成功です。


.namazurcの設定

「namazu.cgi.exe」と「.namazurc」をコピーしたディレクトリに移動します。
日本語のCGIインタフェースを使用したいので、 「.namazurc」を以下のように編集します。

Lang          ja_JP.SJIS ← 先頭の#を削除

検索結果のリンクをクリックした際に、共有ファイルサーバ上のファイルを 開くようにさせたいので、「.namazurc」の「Replace」部分を 以下のように変更します。

Replace //共有ファイルサーバ名/         file://共有ファイルサーバ名/

デフォルトの状態では、Namazuの検索結果は「http://共有ファイルサーバ名/~」で リンクが張られてしまい、共有ファイルサーバ上のファイルにアクセスできませんが、 上記のように「Replace」で「file://共有ファイルサーバ名/~」に置換して、 共有ファイルサーバ上のファイルにアクセスすることが可能。

  • 「file://~」を解釈できるブラウザは今のところInternet Explorerだけなので、 検索時にはInternet Explorerを使用することをお勧めします。

参考

Home

Tips

ページのトップへ戻る