« | Home | »

2005.10.02

namazuによる複数区分の検索の設定

筆者は自宅のサーバで複数のメーリングシステムを運用しているが、メンバーも異なり、MLグループ間での関連も無いことから、MLで蓄積されたメールアーカイブも、2つのグループ間で完全に独立して検索する必要があり、namazuを使ってその構築を行った。
namazuはpackageが用意されているので簡単に入れられる。
FreeBSDでは/usr/local/etc/namazuに設定ファイルのsampleのmknmzrc-sampleとnamazurc-sampleが入っているので、これらをmknmzrcとnamazurcとしてコピーし、編集する。

# cd /usr/local/etc/namazu
# cp mknmzrc-sample mknmzrc
# cp namazurc-sample namazurc

(1) mknmzrcの編集

mknmzrcの編集は以下の2つの#を取って行を有効にするだけでよい。
# $KAKASI = “module_kakasi”;
# $WAKATI = $KAKASI;

(2) namazurcの編集

Indexファイルを入れるフォルダを作る必要があるので、

# mkdir index
# mkdir index/abc
# mkdir index/xyz

abcとxyzは、2つの別々のindexファイルを作るための準備である。
そして、namazurcを編集

# vi namazurc

として、編集するが、編集は以下の3行のみでよい。

Index         /usr/local/etc/namazu/index
Replace       /web/data/  http://自分のサーバのURL/
Lang           ja

(3) cronで実行の準備

今後cronで自動的にindexファイルを更新させるため以下のような内容のファイルをnamazuindexのファイル名で作り、/usr/local/binに入れて実行権限を与えておく。

#!/bin/sh
export LANG=ja
/usr/local/bin/mknmz -O /usr/local/etc/namazu/index/abc
/web/data/ml/abc
/usr/local/bin/mknmz -O /usr/local/etc/namazu/index/xyz
/web/data/xyz/ml

/web/data/ml/abcと/web/data/xyz/mlはそれぞれのメーリングリストのメール保存アーカイブの場所である。
これで、namazuindexをroot権限で実行すれば、/usr/local/etc/namazu/index/abcと・・・index/xyzにindexファイルが作られる。

(4) webページからの検索

/usr/local/libexecにあるnamazu.cgiをcgi-binディレクトリーにコピーし実行権限を与えておく。
これで全ての準備が整ったので、Webページで検索のためのformを作るが、以下のような内容とする。

<form METHOD="GET" action=/cgi-bin/namazu.cgi>
<strong>検索:</strong>
<input size=40 value="" name=key>
<input type=submit value=Search! name=submit>
<input type=hidden value="abc" name="idxname">
<a href="/cgi-bin/namazu.cgi?idxname=abc">検索方法</a>

xyzの検索のページは当然ながら上記のabcaをxyzとすればよい。
あとは、cronでの自動実行のため以下の内容をcrontabに追加する。 この例では毎夜の夜中の2時の実行であるが、後ろに
| /usr/local/bin/nkf -j が付いているのは、実行結果のログをメールで受け取ったときにメーラーで読むためjisコードでログするためである。
0 2 * * * /usr/local/bin/namazuindex | /usr/local/bin/nkf -j

コメント

コメントはありません

コメントフィードを購読する

コメント投稿





コメント本文に次の(X)HTMLタグを使えます:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)