VineLinuxパフォーマンスアッププロジェクト:0146
■全文検索システムnamazuをインストールしてみよう!(1)■
当サイトでも全文検索システムとしてnamazuを使用しています。namazuはVineLinux標準の全文検索システムですので、比較的構築が簡単です。そこで今回はこのnamazuを設置する方法を紹介したいと思います。
やることがたくさんなので、2回に分けて紹介します。
※ここではnamazuの導入をはじめ、htmlページからnamazu経由で検索して結果を表示させる方法について紹介したいと思います。
なお、事前にApache Webサーバがインストールされており、ドキュメントルートディレクトリが/home/httpd/html以下になっていることが前提となっています。
★namazuをインストールする
まずはnamazuをインストールします。以下のパッケージをすべてインストールしてください。既にインストール済みのパッケージがあれば足りないもののみインストールしてください。
・tknamazu
・namazu-cgi
・namazu本体
・namazu-devel
・namazu_VineDocsdb(以下3つは関係ないかもしれませんが)
・namazu_JFdb
・namazu_JMANdb
ダウンロードとインストールはrootユーザでapt-getコマンドやrpmコマンド等で可能です。
★namazuインデックスの作成
※ここから下はrootユーザ権限にて行ってください。ただし設置完了後は正常に稼働するように権限をapacheを操作できるユーザの権限にしておくとよいでしょう。
まずは以下の2ディレクトリを作成します。
mkdir /home/httpd/namazu
mkdir /home/httpd/namazu/index
作成が終わったらインデックスファイルを作成します。作成にはmknmzコマンドを使います。例えば/home/httpd/html以下のファイルを検索対象にしたい場合にはインデックスの格納先を先ほど作成したディレクトリに指定して
mknmz --output-dir=/home/httpd/namazu/index /home/httpd/html
と実行します。そして以下のようなメッセージが出力されればOKです。
[root@XXXXX root]# mknmz --output-dir=/home/httpd/namazu/index /home/httpd/html/
検索対象のファイルを調べています...
X個のファイルがインデックス作成の対象として見つかりました
:
:
[追加]
日付: Mon Dec 25 21:45:58 2006
合計の文書数: 200
合計キーワード数: 34,872
わかち書き: module_kakasi -ieuc -oeuc -w
システム: linux
Perl: 5.008006
Namazu: 2.0.16
●2011/8/12 追記
mknmzコマンドを実行しようとすると、以下のエラーが出る場合があります。
Can't locate Text/Kakasi.pm in @INC (@INC contains: /usr/share/namazu/filter /usr/share/namazu/pl . /usr/lib/perl5/site_perl/5.12.3/i386-linux-thread-multi ・・・・・
このエラーは、Kakasi.pmがインストールされていないか、perlモジュールのパス内に存在しないために起こるものです。
インストールされているが、パス内に存在しない場合は、上記エラーが表示されているパス内(例えば/usr/lib/perl5/site_perl/5.12.3/i386-linux-thread-multi 以下など)にシンボリックリンクを貼ると解決されます。
インストールされていない場合は、こちらのページからKakasi.pmが収録されたファイルをダウンロードします。当サイトにもおいてありますので、こちらからもダウンロードできます。
ダウンロードしたら、rootユーザになり、ダウンロード先のディレクトリまで移動し、以下の手順で展開・インストールします。
tar zxvf Text-Kakasi-2.04.tar.gz
cd Text-Kakasi-2.04
perl Makefile.PL
make
make install
これでもう1度mknmzコマンドを実行するとインデックスが作成されるはずです。
★ターミナル上でのテスト
これで基本的な設定は完了です。一度ターミナル上からテストしてみましょう。
namazu 検索キーワード名 検索対象のディレクトリへの絶対パス
で可能です。ここで注意したいのは検索対象のディレクトリへの絶対パスはインデックスファイルを格納する際に指定したディレクトリにすることです。例えばキーワード名をtestとして上記に沿って作成した場合、
namazu test /home/httpd/namazu/index/
とします。これで以下のように検索結果が表示されればOKです。
[root@XXXXX root]# namazu test /home/httpd/namazu/index/
検索結果
参考ヒット数: [ test: 3 ]
検索式にマッチする 3 個の文書が見つかりました。
1. 0139:自作プログラムの実行時デバッグ処理法 (スコア: 3)
著者: 不明
日付: Thu, 16 Nov 2006 22:06:00 +0900
■自作プログラムの実行時デバッグ処理法■ VineLinuxパフォーマンスアッププロジェクト:0139 一般のユーザが普通あまりプログラムを作成することはないと思いますが、自作したプログラムを実行させる際に便利なデ
/home/httpd/html/vinelinux/perform/command/0139.html (3,535 bytes)
:
:
ここまで完了したら次にhtmlインタフェースを作成します。
●全文検索システムnamazuをインストールしてみよう!(2)へつづく