文書検索ツールNamazuのインストール

 以前から懸案だった文書検索ツールであるNamazuのインストールを再度挑戦してみることとした。

 前回の問題は、インデックス作成時、つまり
# mknmz -O /usr/local/var/namazu/index  /var/www

 とした時に buffer over flow なるメッセージが無数に出て処理が止まってしまうというものであった。

 この件については、今回何度か同じエラーを出してみたり、ネットで調べたりでどうもエクセルのファイルなどが含まれており、そこで止まっているのではと気がついた。

 そこで、インデックスの作成方法を必要なディレクトリーのみ検索する方法に変更してこの問題は解決した。
test:/var/www/dummy# /usr/bin/mknmz --output-dir /usr/local/var/namazu/index/ /var/www/a /var/www/b

 上の例は、ディレクトリーaとbを検索する場合である。

 次に発生した問題は、検索が面の文字が化けると言うものであった。この件については、ネットで検索した結果、

vi /etc/apache2/conf.d/charset
AddDefaultCharset utf8

AddDefaultCharset off
で日本語表示の正常化

として/etc/apache2/conf.d/charsetを修正することで解決した。ただし、この件はetchに関してでsargeではapacheの設定ファイルが違うようで関係なかった。

 次に出た問題は、検索結果が文字化けする件であった。

 これに関しても試行錯誤の結果以下の手順で解決することが出来た。
  1. dpkg-reconfigure localesでシステムの文字コードを再確認。EUCとUTF-8とした。sambaの設定を直前にいじっており、その関係でこの項目もいじっていたので再確認した。
  2. mknmzの入っているnamazu2-index-toolsを再インストール。設定ファイルである/etc/namazu/mknmzrcを以前にいじっており、訳が分からなくなったので初期設定に戻した。
  3. これで大分ましになり、検索結果もほぼ正常となったが、一部のページが化けている。どうもページの文字コードがバラバラのようなので、量の多いShift-JISに統一した。
 といった事であった。以下は、etchで試した時の経緯である。
  1. test:/# apt-get install kakasi
  2. test:/# apt-get install nkf
  3. test:/# apt-get install namazu
  4. test:/# apt-get install namazu2-index-tools
  5. ディレクトリー/usr/local/var/namazu/index/の作成

/etc/namazu/mknmzrcと/etc/namazu/namazurcの設定
/etc/namazu/mknmzrc
#
# Network Kanji Filter nkf v1.71 or later
#
# $NKF = "module_nkf";
$NKF = "/usr/bin/nkf"

/etc/namazu/namazurc
##
## Index: Specify the default directory.
##
Index         /usr/local/var/namazu/index


##
## Template: Set the template directory containing
## NMZ.{head,foot,body,tips,result} files.
##
Template      /usr/local/var/namazu/index

Replace       /var/www  http://anabuki.dip.jp/

Lang          ja


インデックスファイルの作成
test:/var/www/dummy# /usr/bin/mknmz --output-dir /usr/local/var/namazu/index/ /var/www --exclude=/var/www/dummy/*

複数のディレクトリーを指定する場合
test:/var/www/dummy# /usr/bin/mknmz --output-dir /usr/local/var/namazu/index/ /var/www/a /var/www/b

ブラウザからhttp://192.168.0.63/cgi-bin/namazu.cgiで検索画面表示
文字化けするので
vi /etc/apache2/conf.d/charset
AddDefaultCharset utf8

AddDefaultCharset off
で日本語表示の正常化

<form method="get" action="http://anabuki.dip.jp/cgi-bin/namazu.cgi">
<p><strong> 検索</strong> <input type="text" name="key" size="30">
<input type="submit" name="submit" value=" GO "></p>
</form>
でホームページに埋め込む。

インデックスファイルの作成

test:/usr/local/var/namazu# /usr/bin/mknmz --output-dir /usr/local/var/namazu/index/ /var/www
Looking for indexing files...
4 files are found to be indexed.
1/4 - /var/www/apache2-default/index.html [text/html]
2/4 - /var/www/test.txt [text/plain]
3/4 - /var/www/test2.txt [text/plain]
4/4 - /var/www/test3.txt [text/plain]
Writing index files...
[Base]
Date:                Tue Mar 11 21:51:23 2008
Added Documents:     4
Size (bytes):        75
Total Documents:     4
Added Keywords:      16
Total Keywords:      16
Wakati:              module_kakasi -ieuc -oeuc -w
Time (sec):          7
File/Sec:            0.57
System:              linux
Perl:                5.008008
Namazu:              2.0.17RC4

検索画面文字化けの対策
vi /etc/apache2/conf.d/charset
AddDefaultCharset utf8

AddDefaultCharset off

理由はよくわからない。

 後は、このインデックス作成を定期的に実行するよう設定する。以下は毎日の例
/etc/cron.daily/namazu
#!/bin/sh

/usr/bin/mknmz --output-dir /usr/local/var/namazu/index /var/www/a /var/www/b