swish-e搜索引擎, 源代码分析(6)

本文详细介绍了Swish-e搜索引擎中词条的压缩处理过程,包括遍历哈希表中的词条并进行位置信息压缩,以及如何优化存储空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面的部分中,对于swish-e读取文件内容,将分析所得的词条加入到hash表中的过程。

当所有的词条处理完成以后,此时在sw->hashentries[VERYBIGHASHSIZE]表中则存放了所有的词条。

此时需要对于这些词条进行一定的压缩处理,才能最后写入到索引文件中。

本节开始,对于词条信息的压缩过程进行阐述。

在index.c L1200开始进行Compress the entries。

2.4 词条信息的压缩过程

2.4.1 CompressCurrentLocEntry词条压缩算法

  遍历hashentries哈希数组中的词条,通过compress_location对于位置信息进行压缩。

2.4.2 compress_location词条位置信息压缩过程

 

 

  • 在MOD_Index *idx = sw->Index idx结构中有compression_buffer变量,用于压缩的buffer;
  • 先压缩metaID,然后压缩filenum、frequency,已经position信息。

2.4.3 compress_location_values压缩过程

通过以上的处理,对于filenum,频率都进行了压缩。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值