pnamazu に関して、過去にいただいた質問/今後いただきそうな質問と、 その回答をまとめておきます。
pnamazu では、多くの場合、 「Windows マシンでインデックスを作って、プロバイダで動かす」という、 形態で使用されているようです。 そのため、「インデックス環境 ≠ 検索環境」であることに起因する難しさ もあるように思います。
Namazu のシステムは、大きく分けると、
から構成されます。pnamazu は、後者の代替品です。おそらく使われ方の多くは、
という感じだと思われます。
次のことをもう一度ご確認ください。
一連のスクリプトは、EUC-JP で書かれています。 Windows では、Shift_JIS で書かれている前提で動作しているエディタなど もあり、そういうエディタで編集すると、スクリプトがどうなるか、 分かりません。とりあえず、
パラメータに detail=off を加えてください。具体的には、例えば、 <input type="hidden" name="detail" value="off"> なんてのを入れてみてください。
pnamazu では、申し訳ないことに、replace の設定が、 大変分かりにくくなっています。 本家同様、「"replace" 変換元 変換先」と書くことは変わり無いのですが、
レンタルサーバ (プロバイダでもそういうところがあるかも) では、通常、複数の顧客で共有する形態をとるため、ftp なり telnet でアクセスした際には、他人のディレクトリが見えないようにするため、 自分のホームディレクトリがルートディレクトリであるかのように見えるように 設定しているところがあります。例えば、コンテンツの転送の際には、 /public_html/index に置いたつもりで、.namazurc に
Index /public_html/index
と設定しても、真の位置は、/usr/home/hogehoge/public_html/index だったりするわけです。その場合、システムからは「/public_html/index なんてディレクトリは無いから読めん」ということになります。
というわけで、これらの設定には、真のディレクトリ位置を書くようにしてください。
確かに違います。perl 版の動作は次のようになっています。
NMZ.{head,body,tips,foot} に関しては、インデックスを一つだけ指定した場合は、 そのインデックスのディレクトリのものが優先されますが、 複数指定した場合、一つも指定しなかった場合には template ディレクトリ のファイルが使われます。
NMZ.result.* に関しては、常に、インデックスと同じディレクトリのもの が使用されます。複数インデックスの検索をして、複数のインデックスから 文書がヒットした場合、文書毎にそれぞれが属するインデックスのテンプレ ートになります。
perl 版は初期の版から「ヒットしないひらがな語は演算対象としない」 という仕様があり、作者の好みにより、この動作がデフォルトになって います。この動作を変えるには、pconfig.pl の中の $HWMode という 変数を 'on' にして下さい。
あらかじめ、補助インデックスを作っておいてください。
インデックスのあるディレクトリで、同梱の bwnmz.pl を
perl bwnmz.pl
のように実行すると、
NMZ.m NMZ.mi NMZ.s NMZ.si という 4 つのファイルができます。