第四章 索引构建
我们将建立倒排索引的过程称为索引构建。
4.1 硬件基础
构建信息检索系统时,很多决策都和系统硬件环境有关。
- 访问内存数据比访问硬盘数据快得多,因此,我们要尽可能将数据放在内存中,尤其是访问频繁的数据。
这种将频繁访问的磁盘数据放到内存的技术成为高速缓存。 - 进行磁盘读写时,寻道时间(即将磁头移到数据所在磁道的时间)是很耗时的。寻道期间不进行数据传输。为使数据传输率最大,连续读取的数据块在磁盘上应连续存放。
- 操作系统往往以数据块为单位来进行读写。因此,从磁盘读取一个字节和读取一个数据块所耗费的时间可能一样多。
数据块大小通常为8KB,16KB,32KB或64KB。我们将内存中保存读写块的那块区域称为缓冲区(buffer)。 - 数据从磁盘传输到内存是由系统总线而不是处理器实现的,这意味着在磁盘I/O时处理器仍然可以处理数据。我们可以利用这一点加速数据传输过程,比如讲数据进行压缩再存储到磁盘上。假定采用一种高效的解压缩算法的话,那么读磁盘压缩数据再解压所花的时间往往会比直接读取未压缩数据的时间要少。
4.2 基于块的排序索引方法
第一章讲的建立不包含位置信息的索引的基本步骤:
- 扫描文档集合得到所有的词项-文档ID对。