Namazuによる全文検索システムの設定方法



日本語検索に必要なソフト

 namazu-2.0.10-0vl1.i386.rpm・・・namazu本体
 perl-5.6.1-0vl8.i386.rpm・・・Perl 言語
 perl-File-MMagic-1.12-0vl3i386.rpm・・・ファイルの種別
 kakasi-2.3.4-0vl2.i386.rpm・・・日本語・ ローマ字変換
 nkf-1.92-0vl6.i386.rpm・・・Network Kanji Filter 漢字コード変換

 通常、Vine2.5をインストールすると上記はインストールされている。

Namazuの構成部品

 Namazu は大きくわけて mknmz, namazu, namazu.cgi の三つから構成されている。
 mknmz:Perl で書かれていて、インデックスを作る。設定ファイルは /etc/namazu/mknmzrc
 namazu:作成したインデックスを元にコマンドラインから検索する。C言語で書かれている。設定ファイルは /etc/namazu/namazurc
 namazu.cgi:作成したインデックスを元に検索する。CGIとして利用する。C言語で書かれている。設定ファイルは /home/httpd/cgi-bin/.namazurc

インデックスの作成・コマンドラインでの検索の仕方

 Vine2.5の場合、インデックスの作成ディレクトリがデフォルトで /usr/share/namazu/index となっているので、そのディレクトリ以下に作成する。
 例えば、ユーザgoriraのホームディレクトリ(/home/gorira)以下のインデックスを作成したい場合には以下のようにする。

 mknmz  [options]  対象ディレクトリ
# mknmz /home/gorira -O /usr/share/namazu/index/gorira
    注意-O(大文字のオー)でインデックスの出力先を指定しないと、mknmz実行時のディレクトリに作成される。
 このコマンドにより、 NMZ.* というファイルを作成する。この NMZ.* ファイルが Namazu のインデックスである。作成されたインデックスをコマンドラインで検索するには以下のようにする。

 namazu  検索文字列  インデックス
$ namazu ftp /usr/share/namazu/index/gorira
 コマンドラインでの検索時にいちいちインデックスを記載するのが面倒だったり、インデックスが増えすぎてどれを指定していいか分からなくなったりするのを解決するには、/etc/namazu/namazurcを編集して以下のように設定すればよい。
# vi /etc/namazu/namazurc
Index         /usr/share/namazu/index     <−− はじめから記載されている
Index         /usr/share/namazu/index/gorira <−− 書き加える
Index         /usr/share/namazu/index/・・・ <−− 書き加える
Webから検索する

 Web用の検索用ページは /home/http/cgi-bin/search.html にある。Vineの場合はWebを利用できる環境になっていれば http://localhost(またはサーバのIPアドレス)/search.htmlでアクセスできる。
 インデックスを保存するフォルダを作成・移動後、インデックスをWebから検索後、リンクできるようにする。
# mkdir /usr/share/namazu/index/pub
# cd /usr/share/namazu/index/pub
# mknmz /home/gorira -O /usr/share/namazu/index/gorira
 すると、以下のように表示されインデックスが作成される。
検索対象のファイルを調べています...
222個のファイルがインデックス作成の対象として見つかりました
1/222 - /home/gorira/public_html/03a.html [text/html]
2/222 - /home/gorira/public_html/03a.txt [text/plain]
3/222 - /home/gorira/public_html/03a2.html [text/html]
4/222 - /home/gorira/public_html/03a2.txt [text/plain]
5/222 - /home/gorira/public_html/04a.html [text/html]
6/222 - /home/gorira/public_html/04a.txt [text/plain]
		:
		:
		:
217/222 - /home/gorira/public_html/webmin-deamon.htm [text/html]
218/222 - /home/gorira/public_html/webmin-nihongo.htm [text/html]
219/222 - /home/gorira/public_html/win-part-nihongo-mojibake.htm [text/html]
220/222 - /home/gorira/public_html/xhtml-basic.htm [text/html]
221/222 - /home/gorira/public_html/yougosyu-x.htm [text/html]
222/222 - /home/gorira/public_html/zip-tenkai-assyuku.htm [text/html]
インデックスを書き出しています...
[基本]
日付:                Mon Jul  1 22:11:19 2002
追加された文書の数:  222
サイズ (bytes):      8,270,017
合計の文書数:        222
追加キーワード数:    31,259
合計キーワード数:    31,259
わかち書き:          module_kakasi -ieuc -oeuc -w
経過時間 (秒):       647
ファイル/秒:         0.34
システム:            linux
Perl:                5.006001
Namazu:              2.0.10
 上記のままだと検索結果のリンクが /home/gorira/public_html/・・・ となってしまうので、 /home/httpd/cgi-bin/.namazurc を次の行を追加する。
# vi /home/httpd/cgi-bin/.namazurc
Replace        /home/gorira/public_html/ http://www.bigbang.dyndns.org/
             ↑
             └−−−書き加える
 その結果、リンクが http://www.bigbang.dyndns.org/・・・ と表示されるようになる。

基本インデックス

 基本インデックスは、検索時にインデックスの指定が省略されたときに検索対象となるインデックスです。基本インデックスは次の規則に従う。

 標準は $(localstatedir)/$(PACKAGE)/index
 通常は /usr/local/var/namazu/index
 Vine Linuxの場合は /usr/share/namazu/index
 namazurc の Index指示で変更可能

 CGI(namazu.cgi)では、インデックスを選択する際に基本インデックスからの相対パスで指定する。
namazu.cgiの設置
 CGIとしてNamazuを利用するには、namazu.cgi を用いる。namazu.cgi は $(libexecdir)ディレクトリ(通常は/usr/local/libexec、Vine Linuxの場合は/home/httpd/cgi-bin)にインストールされる。CGIを設置したいディレクトリにnamazu.cgiをコピーすれば設置完了です(Vine Linuxの場合はすぐにでも利用できる)。
.namazurc の設定
 namazu.cgi を設置したディレクトリに.namazurcファイルを置くと、CGIの実行時に設定ファイルとして読み込まれる。日本語で表示するには次の設定が必須。

 Lang ja

 Webブラウザからインデックスを選択できるようにするには/home/httpd/html/search.htmlに次のように記述する。
<strong>対象インデックス</strong>
<ul>
<li><input type="checkbox" name="idxname" value="foo">foo
<li><input type="checkbox" name="idxname" value="bar">bar
<li><input type="checkbox" name="idxname" value="baz">baz
</ul>
 なお、先ほどは基本インデックスである/usr/share/namazu/indexの下にpubを作成してインデックスを作成したので、
<strong>対象インデックス</strong>
<ul>
<li><input type="checkbox" name="idxname" value="pub">pub
</ul>
ということになる。

 この例では foo, bar, baz から複数選択して検索できる。検索結果に使われる雛形ファイルは.namazurcのTemplate指示で指定したディレクトリのものが用いられる。Templateが指定されていないときは、次の規則に従う。

 ・選択されたインデックスが1つのとき
  選択されたインデックスの雛形ファイルが用いられる
 ・選択されたインデックスが複数のとき
  基本インデックスの雛形ファイルが用いられる

「検索結果で表示される項目の一部が英語のままになっている。」の対処方法
(「 Results: 」や「 Total 999 documents matching your query. 」など)。

 これを日本語にしたい場合は、/etc/namazu/namazurc の Lang 設定に「 ja_JP.eucJP 」を指定してください。

NMZ.*ファイルの仕様はこちらを参照してください。
全文検索システムNamazu説明書はこちらを参照してください。