CLucene中索引生成的文件格式和内容

xxx.fnm
这个文件是最重要的文件,存储了Field的名字和Field的属性。 生成时先生成此文件,加载时也现价此文件,其他文件几乎都依赖于此文件。

  在这个文件中,Field之间没有做排序。同时这个文件也决定了每个Field的编号,第一个Field是0,第二个Field是1,以此类推。在其他文件中引用到Field时,都是使用Field的编号。 

è¿éåå¾çæè¿°
  

相关代码:

void FieldInfos::write(IndexOutput* output) const{
    output->writeVInt(static_cast<int32_t>(size()));
    FieldInfo* fi;
    uint8_t bits;
    for (size_t i = 0; i < size(); ++i) {
        fi = fieldInfo(i);
        bits = 0x0;
         if (fi->isIndexed) bits |= IS_INDEXED;
         if (fi->storeTermVector) bits |= STORE_TERMVECTOR;
         if (fi->storePositionWithTermVector) bits |= STORE_POSITIONS_WITH_TERMVECTOR;
         if (fi->storeOffsetWithTermVector) bits |= STORE_OFFSET_WITH_TERMVECTOR;
         if (fi->omitNorms) bits |= OMIT_NORMS;
        if (fi->storePayloads) bits |= STORE_PAYLOADS;

        output->writeString(fi->name,_tcslen(fi->name));
        output->writeByte(bits);
    }
}

如:

第一个字节02 表示个数,04表示第一个字段的大小,后面接着4个字节为内空,然后01为属性,08表示第二个字段的大小,最后一个字节0F表示第二个字节的属性值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值