论文部分内容阅读
近年来,随着互联网的高速发展,搜索引擎系统得到了广泛的研究与应用。目前主流的搜索引擎系统均采用倒排索引结构来组织索引,该结构中每一个词项对应一条倒排索引,它将含有该词项的所有网页文档组成一个升序列表(Inverted List)的形式。本文在倒排索引结构的基础上提出一种改进的索引结构——基于Bitmap的倒排索引结构,并设计了对该索引结构的查询处理算法。 本文的主要内容包括: 1.设计了两种基于Bitmap的倒排索引结构,全局Bitmap和局部Bitmap索引结构,其中全局Bitmap的索引结构中将较长的升序列表用一个Bitmap列表代替,而局部Bitmap的索引结构中,升序列表的某一段或某些段被用作Bitmap表示,使得列表中部分是升序列表形式,部分为Bitmap形式。 2.对基于Bitmap的索引结构,提出了相应的查询处理算法。对全局Bitmap索引结构进行处理时,阈值越小,查询中Bitmap列表平均数量越多,查询处理的效率越高。不管是对普通列表求交还是对压缩后的列表进行求交,相比于升序列表的求交,基于Bitmap的索引列表求交的速度会大幅度提升。对全局Bitmap索引结构中Bitmap列表求交过程使用了CPU SIMD进行优化。 3.使用了图形处理器(GPU)来并行处理基于Bitmap的索引结构列表求交,并将若干查询组装为一个批次传输到GPU上处理,从而提高查询处理的吞吐率。由于基于Bitmap的索引结构的列表平均长度较短以及Bitmap列表快速查找特性,使得其查询处理的吞吐率高于升序列表的查询处理吞吐率。同时,对GPU显存空间不足的情况,提出了GPU的缓存策略。对基于Bitmap的索引结构进行查询处理时,需要从CPU传输到GPU的列表数据会相应减少,使得其吞吐率会相应的提升。