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