namazu-ml(avocado)


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

pnamazu-98.08.31 (Re: Distributed Namazu)



古川です。引用前後しますが…

>> On Thu, 20 Aug 1998 10:19:20 +0900, Kenji Suzuki <kenji@xxxxxxxxxxxxxxxx> said:
  > せっかくサーチ・エンジンそのものをつくってるんですから,単
  > なる meta search ではできないことをした方が面白いと思います.

私も同感です。単に併記するだけなんて、寂しすぎます。

ただ、

  > いいんじゃないでしょうか,下位互換よりスマートな実装の方が.

私にとっては、「下位互換」と「スマートな実装」とは、比較するようなもの
ではなくて、

    namazu 間の通信により、スマートな実装

をするのと同時に、

    聞きに行った相手が、既存の namazu だった場合にも、それなりの処理

をしてあげたい、という気持ちがあるものですから、少し考えてみよう、と思
うのです。

というわけで、「スマートな実装」に否定的な気持ちは、全くありませんです。


で、考えても、いいアイディアが浮かばないので、結局「併記」になっている
のですが、それは引き続き考えることにして、

perl 版の検索クライアントを別便にて高林さんに送ります。

#       '+': 新規仕様
#       '?': 試験的仕様
#       '-': 仕様の削除
#       '*': 本体以外の仕様
#       '!': 修正
# 98.08.31
#   + NMZ.w を使っても、後方/中間一致検索ができるようになった   (1)
#   ? dbname=http:// とすると、他の host へ検索結果を聞きに行くようにした
                                                                (2)

(1) 今までは、
        正規表現検索      ... NMZ.w でも NMZ.(m|s)i? でも OK
        後方/中間一致検索 ... NMZ.(m|s)i? じゃなきゃダメ
だったのですが、NMZ.w でも後方/中間一致検索ができるようにしました。

これで、NMZ.(m|s)i? が無くてもひととおりのことができるようになりました。
が、
        正規表現検索      ... NMZ.w の方が速い
        後方/中間一致検索 ... NMZ.(m|s)i? の方が速い

ので、両方あるときは、速い方を優先して使うようになっています。


(2) データベースの名前として、http:// で始まるものを使うと、そこへ検索
結果を聞きに行くようにしてみました。

例えば、QUERY_STRING に
        dbname=hogehoge&dbname=http://www.xxx.yyy/zzz/namazu.cgi
と書いてあると、自分のところの hogehoge を探すと共に、www.xxx.yyy にア
クセスし、その結果を併記します。その際、dbname 以外のパラメータは、そ
のままリモートに渡します。

この機能は、セキュリティ上の問題があるので、初期状態では無効にしてあり
ます。

        もし、外部には公開していない (が、cgi を動かしているマシンから
        は見える) 検索サーバがあり、その url を知られてしまった場合、そ
        の url を dbname に書かれてしまうと、公開していない情報が外に出
        てしまうことになります。

機能を有効にするには、pconfig.pl の中の $RemoteEnable を 1 にして下さい。

また、@DbEnable および %DbAlias というものを用意しました。@DbEnable に
は有効な dbname のリスト、%DbAlias には別名が定義できます。


例えば、hogehoge および、http://www.xxx.yyy/zzz/namazu.cgi だけが検
索対象で、他のマシンへアクセスさせたくない、また、リモートの url を
隠したい、という場合には、pconfig.pl に

        %DbAlias = ('foo' => 'http://www.xxx.yyy/zzz/namazu.cgi');
        @DbEnable = ('hogehoge', 'foo');

と書き、QUERY_STRING にて

        dbname=hogehoge&dbname=foo

としてください。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx