Namazu-devel-ja(旧)


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

Re: NMZ.iのデータ長について



寺西です。

Hideyuki Takahashi wrote:
> 
> NMZ.iには単語xの読み込むべきデータ長を記録していますが、
> これってNMZ.iiから求められませんか?
> NMZ.iiにはNMZ.iの、先頭から何バイト目から読むかを
> 記録しているのですよね。
> NMZ.ii(x+1)-NMZ.ii(x)で、単語xのデータ長が求められると思います。
> NMZ.iiの最後に全体のバイト数を記録するようにすれば
> ばっちりだと思います。

やや冗長なデータですから、まぁそうです。
 
> もしこれが本当なら、インデクスが少し小さくなれますよね。

少しだけ小さくなります。ただ、使いやすいかどうかの問題です。

また、
NMZ.field.{subject,from,date,message-id,...}.i と同じ形式にそろえて
いるので、こうなっているのでしょう。

> あと、前回の話題の変数bersizeについても処理が楽になると思います。

これは変わりません。

NMZ.ii はそのままで、NMZ.i の BERサイズを記録している部分を、
[単語xを含む文書の総数*2] あるいは[単語xを含む文書の総数] 
に変更することで、処理は楽になります。

というより、本来はそうするつもりでフォーマットを考えて作られて
いたのだと思いますが、実装段階で BERサイズ になってしまったので
しょう。(ある意味バグ)
その結果、NMZ.ii から算出できる(最後はのぞく)冗長なデータ
が NMZ.i に含まれるということになっています。

NMZ.i の処理で必要なのは BERサイズではなく、[単語xを含む文書の総数] 
なのですから、NMZ.ii から算出した BER サイズから 
[単語xを含む文書の総数] を求めるのではなく、NMZ.i に 
[単語xを含む文書の総数] を記録しておくというフォーマットの方が
断然使いやすいです。
このためにインデックスが小さくならない(現状と同じ)としても、
NMZ.i に BERサイズ の代わりに [単語xを含む文書の総数] を記録する
というのが、フォーマットとしては良いでしょう。

> いまいち自信がないのですが、NMZ.pにも
> 同じことがいえるのではないでしょうか。

はい。同じです。

> プログラム初心者なので、まったく見当違いのことを
> いっているかもしれなくてどきどきなのすが、ご検討のほど
> よろしくお願いいたします。

Namazu 2.0系はインデックスの互換性を保つことになっているので、
あまりインデックスのフォーマットについては議論されていませんが、
2.1系についてはその制限もないので、良いアイディアがあれば取り込む
ことは可能だと思います。

# もっと大幅に変更したいと思っていますけど。アイディアがない。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E