倒排表在磁盘上的布局
来源:互联网 发布:java mysql 驱动 编辑:程序博客网 时间:2024/04/30 00:37
由于倒排表的大小一般都很大,所以大部分搜索引擎都将倒排表保存在磁盘上。
下图是一个倒排表的总体结构布局:
磁盘是由一个个数据块(block,大小固定,例如64KB)组成的。倒排表中的一个列表(一个单词对应的列表)可能跨越多个block,开始于某个block中的某处,结束于另外一个block的某处。Block是从磁盘存取数据的最小单元,也是在内存中缓存倒排表的单位。
如图可见,每个block中包含很多个来自于一个或多个列表中的posting(posting是一个列表中的元素)。这些postings会继续被分成chunk。例如,我们可能将每个列表分割成chunk,其中每个chunk中有128个元素。每个block的开始包含了一些元数据(metadata),元数据记录了本block包含多少个倒排列表,它们的起始位置。大部分情况下每个chunk中分开保存128个文档ID、128个单词频率和位置信息。Chunk是我们进行压缩和解压缩的单位。(这样的组织,可以让我们首先解码文档ID,进而决定是否需要解压频率和位置信息)
下图是搜索引擎的两层缓存结构
- 倒排表在磁盘上的布局
- 数据库在磁盘上的存储布局HeapFile
- EXT4 之 文件系统在磁盘上的布局 之一
- 数据库系统——关系型数据在磁盘上的存储布局
- 数据在磁盘上的分布
- 磁盘分区,文件在磁盘上的存储
- 在jsp上显示存在磁盘上的图片
- 在装有Linux的虚拟机上新增磁盘的方法
- 如何简单的在相应的磁盘上增加用户
- C++变量在栈上的布局
- flex布局在ios8上的兼容性问题
- tar 的目标文件和源文件均在磁盘上
- 在LINUX上配置oracle ASMLib的多路径磁盘
- 在LINUX上配置oracle ASMLib的多路径磁盘
- 在RHEL5、6、7上配置磁盘的udev规则
- tcpdump在新挂载的磁盘上运行提示Permission Denied
- EXT4文件系统的磁盘布局
- 将 tempdb 从其在磁盘上的当前位置移动到其他磁盘位置
- 把IList和泛型数组转换为DataTable
- 过滤器和拦截器异同
- c:foreach遍历和s:iterator遍历异同
- tomcat的安装使用
- 操作系统接口
- 倒排表在磁盘上的布局
- 人不成熟的六个特征
- jsp中影响编码的属性及其设置小结(contentType,pageEncoding,charset)
- 二进制,八进制,十进制和十六进制 之间的关系转换
- 学会尊重自己
- NFS服务的配置与应用
- hdu 3518
- OpenSuse11安装ATi显卡驱动
- 让 Windows7 - 64bit 支持 VC++ 6.0 的解决方法