全文検索システム「Namazu」+「MeCab」の設定

自サイト内を検索する事の出来る「Namazu」を導入する。
分かち書きには「MeCab」を利用する。
なお「MeCab」を利用する場合、「Namazu」のバージョンは2.0.15以上でなければならない。
もしそれ未満のバージョンの場合、「KAKASI」を用いる方法をこちらに記述している。
ここでは
/var/apache2/htdocs/
以下のすべてを検索対象ディレクトリとし、インデックスを
/usr/local/var/namazu/index/crimson-snow/
に作成するものとする。
また、「Perl」の利用時にはgccを利用するものとする。
「Perl」の利用時にgccを利用する方法に関してはこちらを参照。
なお、「Apache」の設定は完了済みとする。

ライブラリのインストール

「Namazu」のmakeに必要なものをインストールする。

Solaris# mkdir /usr/local/src/nkf <= 作業用ディレクトリの作成
Solaris# mkdir /usr/local/src/mecab <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/* <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる

・「nkf」のインストール
Solaris% cd /usr/local/src/nkf
Solaris% wget http://keihanna.dl.sourceforge.jp/nkf/26243/nkf-2.0.8.tar.gz
Solaris% gunzip -c nkf-2.0.8.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd nkf-2.0.8 <= 展開したディレクトリに移動
Solaris% vi Makefile
CC = cc
↓
CC = gcc

Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# cp nkf /usr/local/bin/
Solaris# rehash <= パスを通す
Solaris# cp nkf.1 /usr/local/man/man1/
Solaris# mkdir -p /usr/local/man/ja/man1
Solaris# nkf -e nkf.1j > /usr/local/man/ja/man1/nkf.1
Solaris# exit <= 一般ユーザになる

・「NKF」のインストール
Solaris% cd /usr/local/src/nkf/nkf-2.0.8/NKF.mod
Solaris% perl Makefile.PL
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール


・「MeCab」のインストール
Solaris% cd /usr/local/src/mecab
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/mecab/mecab-0.96.tar.gz
Solaris% gunzip -c mecab-0.96.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd mecab-0.96 <= 展開したディレクトリに移動
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール

・「mecab-ipadic」のインストール
Solaris% cd /usr/local/src/mecab
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
Solaris% gunzip -c mecab-ipadic-2.7.0-20070801.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd mecab-ipadic-2.7.0-20070801 <= 展開したディレクトリに移動
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール

・「mecab-perl」のインストール
Solaris% cd /usr/local/src/mecab
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/mecab/mecab-perl-0.96.tar.gz
Solaris% gunzip -c mecab-perl-0.96.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd mecab-perl-0.96 <= 展開したディレクトリに移動
Solaris% perl Makefile.PL
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール
「Namazu」のインストール

ここで、「Namazu」に必要な「File::MMagic」を「Namazu」に同梱されているものからインストールする。

Solaris# mkdir /usr/local/src/namazu <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/namazu <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる

・「File::MMagic」のインストール
Solaris% cd /usr/local/src/namazu
Solaris% wget http://www.namazu.org/stable/namazu-2.0.17.tar.gz
Solaris% gunzip -c namazu-2.0.17.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd namazu-2.0.17/File-MMagic <= 展開したディレクトリに移動
Solaris% perl Makefile.PL
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール
Solaris# exit <= 一般ユーザになる

・「Namazu」のインストール
Solaris% cd ../
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール
インデックスの作成

インデックス作成ツールの設定

Solaris# cp /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc
 <= サンプル設定ファイルのコピー

Solaris# vi /usr/local/etc/namazu/mknmzrc <= インデックス作成ツール設定ファイル編集
# $ADDRESS = 'webmaster@Solaris.crimson-snow.net';
↓
$ADDRESS = 'kaz@crimson-snow.net'; <= 管理者のメールアドレスを指定

# $DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
↓
$DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
 <= コメント解除(gif、png、jpg、jpeg等を検索対象としない)

# $NKF = "module_nkf";
↓
$NKF = "module_nkf"; <= コメント解除

# $MECAB = "module_mecab -Owakati -b 8192";
↓
$MECAB = "module_mecab -Owakati -b 8192"; <= コメント解除

# $WAKATI  = $MECAB;
↓
$WAKATI  = $MECAB; <= コメント解除

インデックスの作成

Solaris# mkdir /usr/local/var/namazu/index/crimson-snow <= インデックス作成先のディレクトリ作成
Solaris# mknmz -a /var/apache2/htdocs -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/crimson-snow/
 <= インデックス作成
CGIの設置

WebブラウザからアクセスできるようにCGIを設置する。

CGIの設定

Solaris# cp /usr/local/libexec/namazu.cgi /var/apache2/cgi-bin/ <= CGIファイルのコピー
Solaris# cp /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc
 <= サンプル設定ファイルのコピー

Solaris# vi /usr/local/etc/namazu/namazurc <= 設定ファイル編集
#Replace       /home/foo/public_html/  http://www.foo.bar.jp/~foo/
↓
Replace       /var/apache2/htdocs/  http://www.crimson-snow.net/ <= 検索対象ディレクトリの置換

#Lang          ja
↓
Lang           ja_JP.eucJP <= 日本語化


Solaris# vi /usr/local/var/namazu/index/crimson-snow/NMZ.head.ja <= ヘッダファイル編集
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP"> <= 追加(文字化け対策)

<!-- <input type="hidden" name="idxname" value="foobar"> -->
↓
<input type="hidden" name="idxname" value="crimson-snow">  <= インデックス指定

<a href="{cgi}">[検索方法]</a>
↓
<a href="{cgi}?idxname=crimson-snow">[検索方法]</a> <= インデックス指定

ブラウザで
http://サーバのIPアドレス/cgi-bin/namazu.cgi?idxname=crimson-snow
とアクセスする。

サイト内に設置する場合

サイト内に検索用のFORMを設置する場合、設置したい場所に以下の内容を記述。

<FORM method="get" action="/cgi-bin/namazu.cgi">サイト内検索
    <INPUT type="text" name="query" size="20">
    <INPUT type="submit" name="submit" value="Search">
    <INPUT type="hidden" name="idxname" value="crimson-snow">
    <INPUT type="hidden" name="max" value="20">
    <INPUT type="hidden" name="result" value="normal">
    <INPUT type="hidden" name="sort" value="score">
</FORM>
インデックスの自動作成&不要データ削除
Solaris# vi ~/namazu.sh <= インデックスの自動作成&不要データ削除スクリプト作成
#!/sbin/sh

/usr/local/bin/mknmz -qa /var/apache2/htdocs -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/crimson-snow/
/usr/local/bin/gcnmz -q /usr/local/var/namazu/index/crimson-snow/


Solaris# chmod 755 ~/namazu.sh <= スクリプトに実行権限付加

スクリプトの自動実行

Solaris# crontab -e <= 設定ファイルの編集
00 03 * * * /root/namazu.sh <= 追加(毎日3:00にスクリプト実行)
▲ページのトップへ