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

来源:互联网 发布:鲁谷74号院网络 编辑:程序博客网 时间:2024/04/27 15:47

在前面的部分中,对于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,频率都进行了压缩。

 

原创粉丝点击