実践Linux
CentOS5/6.5 CentOS5/6.5 目次へ TOP(HOME)へ
namazuによる全文検索(CentOS5の場合) 2010年1月
namazu 2.0.20 (CentOS5環境)
Namazu を動作させるために最低でも以下のソフトウェアが必要です。
・Perl(5.004以降)
・File::MMagic Namazu の配布には File::MMagic (1.27) が同梱されています。
日本語の文書を処理する場合には以下のソフトウェアが必要になります。
・nkf (2.07を推奨)
・KAKASI (2.3.0以降)もしくは ChaSen もしくは MeCab
Perl 拡張モジュールを利用することもできます。
・NKF (2.07を推奨)
・Text::Kakasi もしくは Text::Chasen もしくは MeCab
これらのソフトウェアは Namazu のインストール前にあらかじめインストールされている必要があります。
CentOS5でのインストール状況
・Perl 5.8.8がインストール済み
・File::MMagic なし
・nkf 2.0.7がインストール済み
・KAKASI なし
確認 perl、nkfのバージョン # perl --version または # man perl等
perlモジュールの場所 # perldoc -l File::MMagic
kakasi # which kakasi等
●KAKASI 2.3.4 のインストール:
・解凍
tarball を解凍したい場所に置いて、tar でアーカイブを解凍します。
$ tar xvzf kakasi-2.3.4.tar.gz
・configure
解凍したディレクトリに移動して、configure を実行します。
$ cd kakasi-2.3.4
$ ./configure
・make
コンパイルを行い、root でインストールを行います。
$ make
$ su
# make install
エラーが発生しなければ、インストールは終了です。
●namazu 2.0.20のインストール
解凍 % gzip -dc namazu-2.0.20.tar.gz | tar xvf -
まず、File::MMagicのインストール
% cd namazu-2.0.20/File-MMagic
% perl Makefile.PL
% make
% su
# make install
namazu本体のインストール
% cd namazu-2.0.20
% ./configure
% make
% su
# make install
使用
●インデックスの作成
インデックス用ディレクトリ/var/www/namazu_indexを作っておく。パーミションは755。
/var/www/html以下のファイルを/var/www/namazu_indexディレクトリにインデックス作成
# mknmz /var/www/html -O /var/www/namazu_index (-O以下を明示しないと、カレントディレクトリに作成される)
制限 /var/www/html/test1と/var/www/html/test2ディレクトリは除外する場合
# mknmz "--exclude=/var/www/html/test1|/var/www/html/test2"
/var/www/html -O /var/www/namazu_index
--exclude=で2つ以上「|」でつないで指定するなど正規表現を使う場合は全体を「''」または「""」で囲ってやる。
「|」の前後に空白を入れるとexcludeされないので注意。
また、pdfファイルはこのままでは未対応。あとで設定。
●検索テスト
インデックスが作成された/var/www/namazu_indexディレクトリで、
# namazu 営業 . 営業という文字を検索
●cgiの設定
namazu.cgiをさがす。 # find / -name namazu.cgi → /usr/local/libexec/namazu.cgi
これを /var/www/cgi-bin/ にコピーする。
次に、 /usr/local/etc/namazu/namazurc-sample を /var/www/cgi-bin/ に「.namazurc」名に直してコピー。
/var/www/cgi-bin/.namazurcの編集
Index /var/www/namazu_index
Template /var/www/namazu_index
Replace /var/www/html/ http://www.yam-web.net/
Logging off または on
Lang jp
●検索フォームの設定
/var/www/html/search/ディレクトリを作っておく。パーミションは755。
/var/www/namazu_index/よりNMZ.head.jaとNMZ.foot.jaを/var/www/html/search/ディレクトリにコピーして、
# cat NMZ.head.ja NMZ.foot.ja > search.html これで2つがくっついたsearch.htmlができる。
search.htmlの編集 下の2カ所
<form method=”get” action=”../../cgi-bin/namazu.cgi”>
<a href=”../../cgi-bin/namazu.cgi”>[検索方法]</a>
●インデックスの更新
@ホームページを更新したときは、インデックスも刷新してやる必要がある。
再度、以下を実行。
# mknmz --exclude=/var/www/html/test1 /var/www/html -O /var/www/namazu_index
A/var/www/html/search/search.htmlの更新。
文書数、キーワード数、更新日(これらは/var/www/namazu_index/NMZ.head.jaを見ればわかる)。
PDF 文書を検索できるようにする
http://www.foolabs.com/xpdf/download.htmlより以下のファイルをダウンロード。
xpdf-3.02.tar.gz
xpdf-3.02pl1.patch
xpdf-3.02pl2.patch
xpdf-3.02pl3.patch
xpdf-3.02pl4.patch
xpdf-japanese.tar.gz
同じフォルダにダウンロードしたとする。
XPDFのインストール(NamazuのPDFフィルタ用のモジュール)
# tar zxvf xpdf-3.02.tar.gz
# cd xpdf-3.02
パッチをあてる。
# patch -p1 < ../xpdf-3.02pl1.patch (-p1オプションについては下参照)
# patch -p1 < ../xpdf-3.02pl2.patch
# patch -p1 < ../xpdf-3.02pl3.patch
# patch -p1 < ../xpdf-3.02pl4.patch
インストール
# ./configure
# make
# make install
インストール状況の確認
# which pdftotext
/usr/local/bin/pdftotext
日本語の Language Support Packages のインストール
# tar zxvf xpdf-japanese.tar.gz
# cd xpdf-japanese
# mkdir -p /usr/local/share/xpdf/japanese
# cp -R *.unicodeMap *.cidToUnicode CMap /usr/local/share/xpdf/japanese
# cat add-to-xpdfrc >> /usr/local/etc/xpdfrc
patchの-p1オプションについて
パッチファイルはどのディレクトリに対してパッチを当てるかという情報を持っています。
パッチファイルの実体はテキストファイルですので、中身を見ると以下のように書いてある箇所があります。
--- xpdf-3.02/xpdf/Stream.cc等
# cd xpdf-3.02とディレクトリ移動してパッチを当てようとした場合、以下のようにコマンドを打ちます。
# patch -p1 < ../xpdf-3.02pl1.patch
ここで-p1としたのは、xpdf-3.02/xpdf/Stream.ccから1段分のディレクトリ指定を取り除くためです。
(xpdf-3.02/を取り除いてxpdf/Stream.ccとしてパッチを適用することになります)
TOP(HOME)へ