Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pnamazu-2001.06.26
- From: Rei FURUKAWA <furukawa@xxxxxxxxxxxx>
- Date: Tue, 26 Jun 2001 05:35:35 +0900
- X-ml-name: namazu-users-ja
- X-mail-count: 01800
古川です。
perl 版検索プログラムを
http://www01.tcp-ip.or.jp/~furukawa/pnamazu/
に置きました。
#(1) + (ちょっとだけ) wrapper をやりやすくした
#(2) + カタカナフレーズモード
#(3) + ソートして順位が 1 位になった URI に直接飛べるようにした
# + (遅ればせながら) tfidf に対応
#(4) + sort パラメータに fstat:NAME と書くと NMZ.fstat.NAME という
# ファイルを読むようにした
# + 出力フォーマットに #include と書けるようにした
(1)
pnamazu は本当に申し訳ないほど汚いスパゲッティ・スクリプト
なため、何か変更しようと思ったら、改造するよりも、wrapper
を書いて出力を加工するほうが現実的です。ですが、その wrapper
を perl で書くと、毎回 perl を 2 つ起動してしまうことが気
になっていました。そこで、&print というサブルーチンを定義
した上で pnamazu を require したら、出力する代わりに、そち
らのサブルーチンに出力文字列を渡すようにしました。
つまり、今までは、wrapper を書くには、
open(FH, "pnamazu.cgi|");
while (<FH>){
加工;
print;
}
でしたが、これを
sub print{
加工
print;
}
require "pnamazu.cgi";
と書けるようになります。でも、pnamazu の汚さに変わりはあり
ませんので、変数名の衝突の可能性は常にあります。御注意くだ
さい。
(2)
例えば「スパゲッティ・スクリプト」で検索した際に、内部的に
{ スパゲッティ ・ スクリプト }
or { スパゲッティ スクリプト }
or スパゲッティスクリプト
と等価な検索をします。
本当は、
「スパゲッティスクリプト」で検索したら
それを分割して扱う
ようにできるとよいのですが、それをやると、分割の組合せを
試す負荷が大きくなるので、やめました。
カタカナフレーズモードは、デフォルトで on です。これをオフ
にするには、パラメータに kp=off というのを入れてください。
(3)
"submit" という名前のパラメータの value のどこかに "jump"
と書いておくと、第 1 位の URL にジャンプするための Location
ヘッダを返します。
(4)
NMZ.fstat.hogehoge として、整数を pack 'N' で並べた (つまり、
NMZ.t と同じ形式の) ファイルをソートに使えるようにしました。
普通に namazu を使っている分には、役立つことはないと思います。
自作ツールなどで、数字の NMZ.field.* を作っていたかたは、
こちらで代替できます。NMZ.field.*.i を作らなくてもよくなり
ます。
--
Rei FURUKAWA
furukawa@xxxxxxxxxxxx