ホーム > HTMLに役立つヒント > マニュアルに書いてないNAMAZU
> ちょっとしたことだけど悩むこと
NAMAZUにはなぜかインストールの解説はあるんですが、運用に関する解説がなかなかなく、苦労します。ここではちょっとしたTipsを書きます。この後の「きのぼずのための設定」も参考にしてください。
●複数のディレクトリのインデックスを一つにする方法は三つある(馬場さんに間違いをご指摘いただきました。ありがとうございました)
/NAMAZU/indexディレクトリ直下にインデックスを作成するとします。このとき、最初に「mknmz /home/name/html/test」としてtestディレクトリを対象にインデックスを作成したとします。
index---testのインデックス
という状態ですね。ここまでは大丈夫。ここで、このインデックスに追加するつもりでtest2ディレクトリのインデックスを作成させたとします。「mknmz /home/name/html/test2」。期待しているのは
index---testのインデックス + test2のインデックス
なんですが、この方法ではtestインデックスは削除され、test2インデックスが上書きされてしまいます。
testとtest2の両方を一つのインデックスにするためには、次の3つの方法があります。
1. インデックス対象ディレクトリを並べて指定する
直接「mknmz -F /home/name/html/test /home/name/html/test2」と並べて指定する方法です。ディレクトリとディレクトリの間は半角スペースで区切ります。
2. -Yオプションを使う
こちらはどんどん付け足していく方法で、こんな感じ。この方法が最も効率がいいんじゃないかと思います。
mknmz /home/name/html/test
mknmz -Y /home/name/html/test23. インデックスリストを指定する
インデックス作成用リスト「indexlist」を作る方法です。別に名前はなんでもいいのですが、「機能を拡張する」のようにインデックスのリストを作ります。
次に、「mknmz -F indexlist」としてインデックスリスト名を指定してインデックスを作ります。2番の方法よりインデックス作成効率が落ちると思いますが、何をインデックスしたのかあとから確認できるのが利点。
以上の3つの方法、いずれでも「test+test2」のインデックスを作ることができます。
mknmzコマンドのオプションで指定する方法と、設定ファイルであらかじめ指定しておく方法があります。
1. コマンドオプションで指定する(--excludeオプション)
/home/html/をインデックス対象にして、その下の/home/html/cgi-bin/ と /home/html/log/ を対象から外したければ
mknmz '--exclude=/home/html/cgi-bin/.*|/home/html/dummy/.*' /home/html/
となります。「mknmz '--exclude=除外ディレクトリを正規表現で記述' ターゲットディレクトリ」ということです。
2. 設定ファイルで指定する。
mknmzrcで指定します。デフォルトでは「$EXCLUDE_PATH = undef;」となっています。上と同様に正規表現で除外ディレクトリを指定します。
$EXCLUDE_PATH = "/home/html/cgi-bin/.*|/home/html/dummy/.*" ;
設定ファイルで指定する場合は、ほかの人の迷惑にならないように、できるだけホームディレクトリにおくか(この場合はファイル名は「.mknmzrc」)、任意の場所に任意の名前でおいて、mknmzの-f, --configオプションでその設定ファイルを指定してください。
現在、 1,030 のファイルがインデックス化され、 24,687 個のキーワードが登録されています。
インデックスの最終更新日: 2000-03-31
なんて感じでインデックスの作成をするたびにファイル数、キーワード、更新日が表示されるハズです。これは「NMZ.head.ja」の次の赤で挟まれた部分に直接書き込まれる仕組みになっています。
現在、<!-- FILE -->
1,267 <!-- FILE -->のファイルがインデックス化され、
<!-- KEY --> 24,687 <!--
KEY -->個のキーワードが登録されています。 <BR>
<STRONG>インデックスの最終更新日:<!-- DATE
--> 2000-03-31 <!-- DATE --></STRONG>
ここで注意1。FILE、KEY、DATEは必ず大文字でなくてはいけません。小文字、つまりfile、key、dateでは自動的に書き込まれません。はまりました、これ。
注意2。直接「NMZ.head.ja」ファイルを書き換えますから、デザインを変えようと「NMZ.head.ja」をアップロードし直すと「0」に戻ってしまいます。
この場合はもう一度インデックスを更新させれば大丈夫です。ただし、インデックス自体が更新しない(追加するファイルがない)場合は更新されません。
これは掲示板で質問を受けました(http://www.amays.com/~mizusawa/kb/kb.cgi?b=namazu&c=t&id=243)。
単純に「http://〜/namazu.cgi」と呼び出すと必ずスコアが選択されるんですね。これ、仕様のようです。
回避するには、namazu.cgiを呼び出すときに「http://〜/namazu.cgi?sort=late」という風にリンクをしておくと日付の遅い順が選択された状態になります。
掲示板で質問を受けました(http://www.amays.com/~mizusawa/kb/kb.cgi?b=namazu&c=t&id=167)。
index直下にできる「NMZ.slog」というファイルが検索ログです。
中味はこんな感じです。
フィルタ 16 kiwi.ne.jp Wed Apr 12 17:20:05 2000
「フィルタ」というキーワードでkiwi.ne.jpから2000年4月12日(水)17:20:05秒に検索されているということですね。2番目の要素「16」というのは多分ヒット数だと思うんですが、自信ないです。
hiroさんが「NAMAZU(perl版)設置ノウハウ」で「nlview.cgi(Namazu検索キーワード・ログビューワー)」を配布されています。これを使うとブラウザからログを見られるようになるそうです。
恥ずかしながらOS X 10.3.5にインストールするときにはまりました。単純に環境変数LANGの設定を忘れていただけ(^^;
シェルがtcsh(OS Xのデフォルトシェル。csh系も同様)なら「setenv LANG ja」と打ち込んでからmknmzしてください。ch系のシェルなら「export LANG=ja」などとします。