论文部分内容阅读
随着Internet的高速发展,互联网信息量变得越来越庞大并保持高速增长。同时,互联网的用户规模也快速的增加,网民需要一种有效的工具快速的获取信息。搜索引擎作为海量信息获取的主要工具,其用户规模和使用率因此也在不断的攀升。作为搜索引擎服务的提供商,索引了海量、动态的网页文件,面对的问题是如何在较短的时间内响应用户的高并发查询请求。 目前,主流的搜索引擎服务提供商采用分布式集群的方式分担用户的查询负载。但是为了获得全局最大的处理效率,单个节点处理能力的提高是十分必要的。本文利用爬虫采集的数据,进行在高并发查询条件下动态在线全文索引技术研究,将索引高并发快速响应的问题转化为查询结果读取不阻塞的问题。主要工作包括以下几点: (1)对倒排表存储结构设计和压缩算法进行研究。对于海量数据来说,索引文件较大,不能一次性读入内存当中。因此系统需要通过查询内存中的词表,获得对应的倒排表在磁盘中的位置后再将倒排表读入到内存中。在高并发查询条件下,索引的压缩率和索引的解压速度在很大程度上决定了查询系统的效率。本文基于现有压缩算法的基础上,提出了自适应分块大小的VB_PForDelta压缩算法,平衡了压缩率和解压速度。实验证明,本文提出的方法具有较好的压缩率和解压速度。 (2)对缓存结构和替换策略进行研究。从磁盘中的索引文件中读出倒排表存入到内存中后,需要在内存有限空间内缓存一段时间。待下次查询时加速响应速度。本文提出一种基于历史记录特征的缓存结构以及相适应的替换算法HFC,通过查询语句历史出现频率以及查询语句的组成来判断是否是经常使用。通实验证明,本文的缓存能有效的提高命中率。 (3)基于以上的研究成果,本文构建了在高并发查询条件下快速响应的在线全文检索原型系统。该系统主要包含四大模块:数据采集模块,索引模块,查询模块,缓存模块,展示模块。力求系统设计合理,稳定,易于扩展。该系统为在线全文索引的并发查询问题的进一步研究奠定了基础。