Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pnamazu-2001.03.09



古川です。

perl 版検索プログラムを

http://www01.tcp-ip.or.jp/~furukawa/pnamazu/

に置きました。

今回は、バグ修正も含みますが、今、困っていない方が入れかえる
ほどのことではないと思います。

#(1)* tool2/nmzcheck.pl を同梱。インデックスの文字化け、ftp 転送などに
#     よるエラーなどをチェックします
#(2)* tool2/nmz-mew-summary-fixer.pl を同梱。mew-nmz を使っていて、
#     sort や pack したためにデータとインデックスの対応がとれなく
#     なった状態を修復します
#(3)* 「履歴」を namazu.pl から doc/history.txt に移動
#(4)+ opmode に 'forward' を新設
#   ! grep 機能時に、2 行にまたがるメールヘッダの処理を修正
#   ! default の EmphasisTags が namazu と異なっていたのを修正
#     (Kenji さん Thanks)

(1) 私宛に「動かない」とのメールをいただくことがあるのですが、
インデックスがおかしいケースが結構あります。pnamazu はプロバイ
ダで使われることが多いため、ftp 転送という手順が必要になり、こ
こで壊れてしまうようです (←必ずバイナリモードを使ってください)。

nmzcheck.pl は、そのような、インデックスのエラーをチェックしま
す。


(2) mew-nmz を使っていて、フォルダを sort/pack すると、インデ
ックスとファイルの対応がずれてしまうのを修正します。

namazu-devel-ja#1135 からの一連のメールを御参照ください。

なお、このスクリプトは nmzidx.pl を require していますが、cvs
上にあるものか、pnamazu 同梱のものを使ってください。2.0.5 に
含まれているものでも、動作上、致命的な問題はありませんが、文
書数、単語数などの表示がおかしくなります。


(3) 今まで namazu.pl に「履歴」を書いていましたが、いつの間に
か 300 行近くになっていたので、別ファイルに移しました。


(4) 「opmode=inside を使ったら、かえって日本語がヒットしなく
なった」とのメールをいただきました。

opmode=inside の場合、日本語のキーワードは、前後に「*」がつい
ているのと同義です。キーワードの前に「*」があると、わかち書き
処理ができなくなります(正規表現にして全単語を走査しているだけ
なので)。

# ↑ここまでは、正規版も perl 版も共通

この問題について perl 版では、計算量の多くなる部分を、あらか
じめ計算しておき、それを補助インデックスとして置いておくこと
で、分かち書きができるようになっています。

具体的には、同梱の bwnmz.pl をインデックスのあるディレクトリ
で

    perl bwnmz.pl

のように実行すると、NMZ.m NMz.mi NMZ.s NMZ.si という 4 つのフ
ァイルが作られます。

opmode=inside を使う場合には、これらのファイルを置くことを強
く推奨します。(プロバイダ等で使う際には、他のインデックスファ
イルと一緒に転送してください)

で、「そこまではしたくない」という方のために、(本当は「そんな
こと言わないで」と言いたいところですが) opmode=forward という
設定ができるようにしました。これだと、効果も半減ですが、補助
インデックス無しでも、ヒットを増やすことができます。

-- 
Rei FURUKAWA 
furukawa@xxxxxxxxxxxx