Web内を全文検索するためのツール「Namazu」をインストールしましょう。Namazuは高林哲氏が開発した日本語対応の全文検索エンジンです。ここでは、検索エンジンとしてNamazuを使用し、文書のフィルタリングに高橋裕信氏が開発したKAKASIを利用します。このKAKASIには分かち書きパッチを当てます。他にnkfも使用します。
1.nkfのインストール
portsからインストールしましょう。ja-nkf-1.71 がインストールされます。
# cd /usr/ports/japanese/nkf # make install
2.KAKASIのインストール
これもportsからインストールします。ja-kakasi-2.3.3 がインストールされます。
# cd /usr/local/japanese/kakasi # make install
これで分かち書きパッチと辞書も同時にインストールされます。
3.Text-Kakasiのインストール
ダウンロードしてソースからコンパイルします。
# tar zxvf Text-Kakasi-1.05.tar.gz # cd Text-Kakasi-1.05 # perl Makefile.PL # make; make install
3-1.Namazuのダウンロード
Namazuをダウンロードして/usr/local/src/に置きます。最新バージョンは2001年8月現在、2.0.6です。そして展開します。
# cd /usr/local/src # tar zxvf namazu-2.0.6.tar.gz # cd namazu-2.0.6
3-2.Namazuのmake
configureしてmakeします。makeの途中で失敗することがありますが、その場合はメッセージに従い指示されたどおりにします。そして、namazu.cgiをapacheのcgi-binディレクトリにコピーします。
# ./configure # make # make install # cp /usr/local/libexec/namazu.cgi /usr/local/www/cgi-bin/
これで準備は整いました。
4.インデックスファイルの作成
次にインデックスファイルを準備します。デフォルトではインデックスファイルは、/usr/local/var/namazu/index ディリクトリーに置かれますので、そこでインデックスを作成します。
# cd /usr/local/var/namazu/index # mknmz /usr/local/www/data/
これで数分から数十分後にインデックスが完成します。ここでメッセージに日本語が出ない場合は、環境設定を日本語に代える必要があります。僕の場合、/ /root /masao の各ディレクトリの.cshrcに次の1行を追加しました。
# ee .cshrc ----- setenv LANG ja_JP.eucJP -----
次に、毎朝4時30分にインデックスを作るようにcrontabを設定してみましょう。
# crontab -e ----- 30 4 * * * cd /usr/local/var/namazu/index ; /usr/local/bin/mknmz /usr/local/www/data > /dev/null 2>&1 -----
5..namazurcの書き換え
このままでも、ブラウザから、/cgi-bin/namazu.cgiにアクセスすれば検索可能なのですが、検索結果がディリクトリパスで表されるため、URLで表現されるように一部書き加えます。なお、スペースキーではなく、Tabキーでスペースを作って下さい。namazurc-sampleをコピーして書き換えます。
# cd /usr/local/etc/namazu # cp namazurc-sample /usr/local/www/cgi-bin/.namazurc # cd /usr/local/www/cgi-bin # ee .namazurc ----- Lang ja Replace /usr/local/www/data/ http://www.fujie.org/ -----
また同時に、namazurcとmknmzrcも必要に応じて書き換えます。
# cd /usr/local/etc/namazu # cp namazurc-sample namazurc # ee namazurc ----- Lang ja_JP.SJIS ----- # cp mknmzrc-sample mknmzrc # ee mknmzrc -----
6.atok辞書の利用
これで完成ですが、KAKASIの辞書にatok辞書を合併してみましょう。まず、atok辞書のツールを利用して辞書をテキストファイルとして書き出します。このファイルをエディタなどで、eucコードで保存します(例:atok12.euc)。これを適当なディレクトリに(例:/tmp)に置きます。これをawkコマンドを使って、skkファイルに変換します。
# cd /tmp # cat atok12.euc | awk '{print $1 " " $2}' > atok12.skk
これは、読み・漢字・品詞という順番で並んでいるatok12.eucを、読み・漢字という並び(skk形式)に変換するものです。この新しくできたatok12.skkをkakasiのsrcディレクトリにcopyし、kakasiのツールである、mkkanwaを利用して合併します。
# mkkanwa kanwadictのパス 辞書ファイル1 辞書ファイル2・・・ # cd /tmp # cp atok12.skk /usr/local/share/kakasi/ # mkkanwa /usr/local/share/kakasi/kanwadict atok12.skk
これでマージされた新しい辞書ができます。