Namazu-users-ja(旧)


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

Re: フレーズ検索のHASH値への変換方法



小舞です。

Tadamasa Teranishi さんは書きました:
>いろいろと調べていると namazu で 文書の総数 * 2 として扱っている
>のは、nmz_get_maxhit() * 2 との比較している部分だけでした。
>(これは、検索で見つかった文書の数の上限チェックです。)
>それ以外の部分、NMZ.p を扱っているところなども含めて
>BER圧縮されたデータのバイト数 として扱っていました。

ここだけなら、実質上も、何ら問題なさそうですね。

>ファイル仕様の誤植と考えて、修正するだけで実質問題ないかもしれません。

>実績のある namazu クライアントでは、BER圧縮されたデータのバイト数
>として取り扱っているものと思われます。
>(ただし、namazu 同様、文書の数の上限チェック の部分は、ファイル
>仕様の 文書の総数 * 2 を使うといった混在の可能性はありますが。)

そうですね。もし、うまく動いているのなら、
イコール、BER圧縮されたデータのバイト数として見ていると
想像しても、良いのかもしれません。

自分の場合、部分一致をなんとかしようと思って、
まず、クライアントプログラムを作って、それを高度化しようと
思ったのですが、
Cのソースで、NMZ.result.*のテンプレート的処理($uriとか$date)とかの記述を見て、
この部分の作者の努力に頭が下がり、(自分では、とてもここまでできない。。)
と思い、自分はあっさりクライアントプログラムの改造高度化はあきらめ
(あ、でも、皆さんはどんどんチャレンジして下さい。期待しています!
自分は、あきらめが非常に非常に早い方なので。。)
それなら、と、ファイル仕様書を読みつつ、NMZ.t、NMZ.w、NMZ.wi、NMZ.i、NMZ.iiを読んで、
再構築する方を選んだのが、nmzrだったのです。そうすると、NMZ.iをきちんと
読まないといけないのですが、まぁそれなりにnmzrも動いているので、
(もし読み方が1byteでもずれたら、多分、結果がおかしくなる筈なので)
そこではじめて、誤植なのだろうなぁ〜、、と思って、投稿した次第です。

別段、揚げ足を取る意味ではないので、その辺り、ご理解頂きたく思います。

>なお、NMZ.p に関しては
>http://www.namazu.org/doc/nmz.html.ja#p
>文書数か、BERバイト数のどっちにしても
>    [ハッシュ値\x0000を含む文書数][ハッシュ値\x0000を含む文書ID]...
>    [ハッシュ値\x0000を含む文書数][ハッシュ値\x0001を含む文書ID]...
>    [ハッシュ値\x0000を含む文書数][ハッシュ値\xffffを含む文書ID]...
>は
>    [ハッシュ値\x0000を含む文書数][ハッシュ値\x0000を含む文書ID]...
>    [ハッシュ値\x0001を含む文書数][ハッシュ値\x0001を含む文書ID]...
>    [ハッシュ値\xffffを含む文書数][ハッシュ値\xffffを含む文書ID]...
>と思われるので、誤植を含んでいるのは確かです。
寺西さん、目が良いですね。。
何のことか、最初よくわかりませんでした。
目を凝らしてみて気づきました。ハハハ。(^^;)