[groonga-dev,03824] [C-API] grn_column_createで8バイトを超える固定長カラムをつくれるようにしたい

Back to archive index

Naoya Murakami visio****@gmail*****
2016年 1月 5日 (火) 00:16:29 JST


村上です。

現在、grn_column_createではsizeof(int64_t)=8バイトを超えるものは
可変長カラムのgrn_ja_createが利用されるようになっています。
https://github.com/groonga/groonga/blob/v5.1.1/lib/db.c#L4518

一方、固定長カラムのgrn_ra_createはもっと大きいサイズでも入るように
デザインされていると思います。
https://github.com/groonga/groonga/blob/v5.1.1/lib/store.c#L36-L39

ビルトイン型だけの場合、固定長カラムはINT64まででいいと思うのですが、
C-APIのgrn_type_createを使って、UINT128,256とかもう少し大きいものを
保存したいと考えています。

具体的な私のユースケースとしてはカラムのminhash値の最下位ビットk個を
保持しておいて高速に類似計算することを実験しています。
https://github.com/naoa/groonga-minhash
kが多いほど精度を上げられるため、64ビット以上のビット列を保持したいと
思っています。

SHORT_TEXTと区別するだけでいいなら、たとえば、以下のように4096以上
の場合のみgrn_ja_createにするようにしてもらえないでしょうか?

if ((flags & GRN_OBJ_KEY_VAR_SIZE) || value_size >= 4096) {

以上、ご検討よろしくお願いします。
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



groonga-dev メーリングリストの案内
Back to archive index