Namazu-users-ja(旧)


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

pnamazu-2000.05.26



古川です。

perl 版検索クライアントを

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

に置きました。

#(1)+ 演算子 '-' を新設
#(2)+ CGI 動作時の演算モードとして "normal" "or" "inside" を新設
#   + 検索時の制限値を導入
#   + namazurc の EmphasisTags に対応したつもり (いいかげん)
#(3)! Replace\t が、最後のものしか有効でなかったのを修正
#     (Thanks to 良井竜さん)
#   ! ドキュメントの不備を修正
#     (Thanks to 本橋誠司さん、小関吉則さん)
#   ! NMZ.head などを読むときに、nkf -Z1 相当の処理をしていたのをやめた
#(4)! 検索文字列を EUC-JP 以外で送信するブラウザから、複数インデックス
#     を検索したときなどに、文字化けするケースがあったのを修正
#     (Thanks to 本橋誠司さん)

(1) '-' という演算子を新設しました。これは、not と似ていますが
    *京都* not 東京都
        「京都を含む語」を含む文書のうち、「東京都」を含まないものにヒット

    *京都* - 東京都
        「京都を含む語のうち『東京都』以外」を含む文書にヒット

つまり「京都」「東京都」を両方含む文書に、前者はヒットせず、後者はヒット
する、ということです。

当然ですが、前の項は、部分一致、正規表現など、複数の語に展開されるもので
ないと、意味がありません。


(2) CGI 動作時の QUERY_STRING に opmode という変数があったら、
    'or' の場合
        演算子の無いものを or で扱います。また、従来通り、
        それが { } で囲まれているときは phrase 演算し、
        'and', 'or' といった演算子も、使えます。

    'inside' の場合
        単純な日本語の単語検索のときに、語の前後に '*' がついている
        ものとして扱います。

        例: 「京都」は「*京都*」と扱われます。

        英数字については、この処理はされません。従来通り '*' を明示
        しない限り、単語単位となります。

利用法としては、例えば、NMZ.head に
    <select name="opmode">
    <option selected value="normal">すべての語を含む
    <option value="or">いずれかの語を含む
    <option value="inside">単語の一部でも有効
    </select>
なんてのを入れておくことが考えられます。

(3) 複数の Replace\t を設定したときに、後のものしか効いていませんで
した。(X-Mail-Count: 00403 参照)

(4) 検索文字列を EUC-JP 以外 (ISO-2022-JP とか) で送信するブラウザで、
複数のインデックスを検索したとき (以外にもあるかもしれませんが) に、
文字化けすることがありました。(X-Mail-Count: 00451 参照)

-- 
Rei FURUKAWA 
furukawa@xxxxxxxxxxxx