全文検索システム Namazu

ぜんぶんけんさくしすてむ・なまず最終更新日 2013年9月4日

サイト内を日本語で全文検索できるサービスを提供するシステムとして、日本語環境でもっともメジャーなのが、Namazu

しかし、公式サイトはLinux開発系(笑)らしい難解な状態で、一見さんお断わりなのである。

ということで、手元のLinux環境にインストールする方法を説明している、

マニュアルに書いてないNAMAZU

を参考にして作業を行ないます。Smart!のNamazu講座なども比較的よくまとまっていると思いますが、今回は参考にしませんでしたのでご紹介まで。

環境は、イマドキRed Hat Linux 7.3(笑)。もともとは実験用サーバーだったのですが、ヘタにウェブサイトを提供しているので、身動き取れなくなっています。

nkf

nkf -v

まずnkfのバージョンを確認。1.90。ビンゴ。

パッチをあてなければならないらしい。Solaris8 for intel内のnkfのインストールを参考にやってみる。

nkf

あとはおおむね手順通りできる。2.04になった。

KAKASI

zcat kakasi-2.3.4.tar.gz | tar xp

(tar xpf-はナンかもっと指定することがあるらしい)

rm -rf kakasi-2.3.4.tar.gz

cd kakasi-2.3.4

./configure

make

make install

make clean

make distclean

TEXT-Kakasi

zcat Text-Kakasi-1.05.tar.gz | tar xp

rm -rf Text-Kakasi-1.05.tar.gz

cd Text-Kakasi-1.05

perl Makefile.PL

make

make install

make clean

make distclean

Namazu本体

zcat namazu-2.0.13-1.tar.gz | tar xp

rm -rf namazu-2.0.13-1.tar.gz

cd namazu-2.0.13-1/File-MMagic

perl Makefile.PL

make

make install

cd ..

./configure

(やや時間がかかります)

make

make install

make clean

make distclean

Namazuの設定

/usr/local/libexec/namazu.cgi を自分のスクリプト配置場所namazu等にコピー

namazu以下にインデックスファイルの配置用ディレクトリとしてindexを作成

その中にnamazu-2.0.13/template/からMNZ.*.jaのファイル群をコピー(NMZ.head、NMZ.foot、NMZ.body、NMZ.tips、NMZ.result)

namazuディレクトリのパーミッションは777に。namazu.cgiのパーミッションは755に。

namazu.cgiの設定ファイルを用意する

namazu-2.0.13/conf/namazurc-sampleをnamazu/.namazurcとしてコピー(namazu.cgiと同じディレクトリ

下記を設定。行頭の#をとること。

インデックスの位置
#Index /usr/local/var/namazu/index

Index /home/name/html/NAMAZU/index

テンプレートファイル(先ほどのMNZ.*.ja)の位置
#Template /usr/local/var/namazu/index

Template /home/name/html/NAMAZU/index

ローカルのパスの置換方法を指定
#Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/

Replace /home/name/html/ http://www.ドメイン/~name/

言語設定
#Lang ja

Lang ja
↑これは必ず行頭の#を外すこと。でないと日本語仕様にならない。

mknmz用の設定ファイルを用意する

設定ファイルの便を考えると、FTPでアクセスできるところにおいておきたい。

/usr/local/etc/namazu/mknmzrc-sample を namazu/index/mknmzrcとしてコピー(indexディレクトリ)※動作の様子を見て、ここが簡単そうなので

下記を設定。行頭の#をとること。

管理者の連絡先
# $ADDRESS = 'webmaster@ns.amays.com';

$ADDRESS = '自分のメールアドレス';

除外するファイルを正規表現で、|で区切って指定。
# $EXCLUDE_PATH = undef;

$EXCLUDE_PATH = "/home/name/public_html/namazu/.*|/home/name/public_html/secret/.*\.txt";

mknmzrcの設定についてはこちらのサイトが参考になります。

Namazuの設定

ただ、私はポリシーとして必要な項目以外はデフォルトから変更しないので、上記の変更しかしていません。

ファイルの配置

home/name--html-+-namazu-+-+-namazu.cgi
         |    | +-.namazurc
         |    |
         |    +-index-+-NMZ.body.ja
         |        +-NMZ.foot.ja
         |        +-NMZ.head.ja
         |        +-NMZ.result.normal.ja
         |        +-NMZ.result.short.ja
         |        +-NMZ.tips.ja
         |        +-mknmzrc
         |
         +-他のディレクトリ

テスト

namazuディレクトリにて

LANG=ja

export LANG

set | grep LANG

mknmz -f, --config=/home/name/namazu/.mknmzrc /home/name/target_directory

インデックスの作成が終了したら、

ブラウザからnamazu.cgiにアクセス、

適当に検索できるか確認。

自動でインデックス更新

cronを使います。

autoindex.shファイルはEUCで改行はLFというUnix式に保存します。

./autoubdex.shでインデックス化が実行されるか確認。

ちゃんと動いたらcronに

0 7 * * * /home/name/html/namazu/autoindex.sh

などと指定。

フィルタの設定

だいたい動いてるようなので、フィルタの設定に挑む。

設定したいフィルタは以下の通り。Namazuは各文書ファイル対応のフィルタは標準装備らしいが、実際にフィルタを動作させるためのプログラムはユーザーが入手してインストールしなければならない。

XDW DocuWorks文書用 xdw2test

PDF Adobe PDF用 xpdf

DOC Word用 wvware

XLS Excel用 xlhtml

 

[システム管理者のひとり言]

鳥繁.COM
このページは鳥繁.COMアクセスアップキャンペーンの一環で作成されています。
Copyrights © 2002-2013 Torihan.COM. All rights reserved.