WWW全文検索システムを構築する (namazu 2.x)

対象プラットフォーム: FreeBSD 7.x / FreeBSD 6.x


はじめに

namazuは手軽利用できる日本語全文検索システムで、これを利用することにより、サイト内の全文検索システム等を簡単に構築することが出来ます。

このページでは、FreeBSDでのnamazuの導入と設定、および利用方法について説明します。

「namazu2」のインストール

namazuはデフォルトでシステムにインストールされていませんので、別途システムにインストールする必要があります。

インストールはportsを利用して行います。
このページの執筆時点(2007/07/05)で、portsにはversion 1.xのnamazuと、2.xのnamazu2が収録されていますが、今回は新しいほうのnamazu2を利用することにします。

portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。

portsの展開が完了した後、下記手順でnamazu2をmakeし、インストールします。

「namazu2」のインストール
$ cd /usr/ports/japanese/namazu2
$ make config-recursive
$ make install clean

namazu2を動作させるには、「nkf」や「MeCab」等のいくつかのソフトウェアが必要ですが、portsからインストールすると、これらのソフトウェアも自動的にインストールされます。

設定ファイルの編集

次に、インストールされたnamazu2の設定を行います。

「mknmz」の設定

「mknmz」はnamazu2が検索に利用するインデックスを作成するツールで、その設定は設定ファイル「mknmzrc」内で行います。
FreeBSDでは、mknmzrcは「/usr/local/etc/namazu/」下に保存します。
デフォルトでは、当該ファイルは存在しませんので、同じフォルダ内にある「mknmzrc-sample」を「mknmzrc」の名前でコピーして利用します。

「mknmzrc」の作成
$ cp -p /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc

mknmzrc内に以下の記述がありますので、これをアンコメントしてください。

「mknmzrc」の編集(編集前)
# $NKF = "module_nkf";
# $MECAB = "module_mecab";
# $WAKATI = $MECAB;

「mknmzrc」の編集(編集後)
$NKF = "module_nkf";
$MECAB = "module_mecab";
$WAKATI = $MECAB;

「namazu」の設定

続いて、mknmzで作成されたインデックスから検索を行うツール「namazu」の設定を行います。

namazuの設定ファイルも、「mknmzrc」と同じフォルダ内に「namazurc」の名前で保存しておく必要があります。
以下の要領でサンプルファイル「namazurc-sample」を「namazurc」の名前でコピーしてください。

「namazurc」の作成
$ cp -p /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc

namazuを正常に動作させるのに最低限必要なのは、以下の3つの記述です。
namazurcの内容を確認し、適宜編集/追記を行ってください。

「namazurc」の編集
Index        /usr/local/var/namazu/index/root_http/
Template     /usr/local/var/namazu/index/root_http/
Lang         ja

「Index」は、mknmzで作成されたインデックスが格納されたパスを、「Template」は、namazuの実行結果の画面表示のテンプレート群が格納されたパスを、「Lang」は、実行結果を表示する際の言語を、それぞれ指定します。

インデックスの作成と全文検索の実行

上記の設定が完了すれば、もうnamazuは利用できる状態になっています。
早速インデックスを作成し、検索を掛けてみましょう。

「mknmz」によるインデックスの作成

まず最初に、mknmzを利用してインデックスを作成します。

「mknmz」によるインデックスの作成
$ mknmz -O /usr/local/var/namazu/index/root_http/ /home/www/root_http/

上記の例では、「/home/www/root_http/」以下のディレクトリを走査し、インデックスを作成します。
作成されたインデックスは「/usr/local/var/namazu/index/root_http/」に格納されます。

「namazu」による全文検索

続いて、namazuを利用して全文検索を掛けます。

「namazu」による全文検索
$ namazu hogehoge

上記の例では、「hogehoge」をクエリとして全文検索を掛けます。

検索実行時に「Can't open the index」と表示される場合

検索実行時に「Can't open the index」と表示される場合、「namazurc」の中の「Index」または「Template」が正しく指定されていないか、指定は正しくてもその中にインデックスが含まれていない可能性があります。

上記内容が正しく設定/配置されているかをご確認ください。

Webページからの全文検索

次に、Webページ上から全文検索を行う方法について説明します。

CGIと設定ファイルの配置

namazu2には、Webページ上で検索結果を表示させるためのCGIプログラム(バイナリコード)が用意されています。
FreeBSDでは、「namazu.cgi」は「/usr/local/libexec」下に格納されますので、これをhttpdでCGIが利用できるフォルダにコピーします。

「namazu.cgi」のコピー
$ cp -p /usr/local/libexec/namazu.cgi /home/www/root_http/

続いて、「namazu.cgi」と同じフォルダに設定ファイルを配置します。
設定ファイルは、「namazurc」を「.namazurc」の名前でコピーして利用します。

「.namazurc」の作成
$ cp -p /usr/local/etc/namazu/namazurc /home/www/root_http/.namazurc

上記のようにして作成した「.namazurc」に、下記の記述を追記してください。

「.namazurc」への追記
Replace  /home/www/root_http  http://www.kishiro.com

上記のように指定すると、namazu.cgiによって表示された全文検索結果のページにおいて、「/home/www/root_http」が「http://www.kishiro.com」に置き換えられます。

上記のように設定しておくと、検索結果に「/home/www/root_http/aaa/bbb.html」のファイルの内容がヒットした場合には、このファイルへのリンクが「/http://www.kishiro.com/aaa/bbb.html」に変換されて表示されます。


あなたの探し物は見つかりましたか?
まさにこれだ 参考になった ちょっと違う これじゃない
何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まだ評価がありません

表示できるメッセージはありません。


目次に戻る
image