FOR压缩算法

一、倒排索引的数据结构

 倒排表的压缩算法:FOR、RBM

词项索引的检索原理:FST

二、FOR压缩算法

如上图,假设倒排表中最理想的一行id为1,2,3......100 W个连续数字

 图Ⅰ:若没有使用FOR压缩算法,则有100W个int类型的数字,1数字=4字节,则有400W字节,约占4M存储空间。1字节=8bit,则1int需要32bit,即3200Wbit

   若使用了FOR压缩算法,1-100W个连续数字,前后两个数字取差值,得到最终结果1,1,1.....1。100W个1,每个1需要2的0次方=1bit存储即可。最终结果为100Wbit,空间节省32倍

图Ⅱ:倒排表中id几乎不可能为连续数字,以73,300,302,332,343,372为例。6个int类型数字,不使用FOR压缩算法需要24byte

   若使用FOR压缩算法,先取差值得到73,227,2,30,11,29。这时得出最大差值为227,227在2的8次方范围内,这样就只需要每个分配2的8次方的空间

   在上面的基础上,我们发现有一个差值是2,这时FOR算法会根据一定原则自动分组,从而再次降低需要分配的存储空间

 

posted @   showMeTheCodes  阅读(469)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示