搜索引擎的索引和搜索

对于网络蜘蛛技术和排序技术请参考做者其它文章[1][2],这里以Google搜索引擎为例主要介绍搜索引擎的数据索引和搜索过程。

数据的索引分为三个步骤:网页内容的提取、词的识别、标引库的创建。 服务器

互联网上大部分信息都是以HTML格式存在,对于索引来讲,只处理文本信息。所以须要把网页中文本内容提取出来,过滤掉一些脚本标示符和一些无用的广告信 息,同时记录文本的版面格式信息[1]。词的识别是搜索引擎中很是关键的一部分,经过字典文件对网页内的词进行识别。对于西文信息来讲,须要识别词的不一样 形式,例如:单复数、过去式、组合词、词根等,对于一些亚洲语言(中文、日文、韩文等)须要进行分词处理[3]。识别出网页中的每一个词,并分配惟一的 wordID号,用于为数据索引中的标引模块服务。 网络

标引库的创建是数据索引中结构最复杂的一部分。通常须要创建两种标引:文档标引和关键词标引。 文档标引分配每一个网页一个惟一的docID号,根据docID标引出在这个网页中出现过多少过wordID,每一个wordID出现的次数、位置、大小写格 式等,造成docID对应wordID的数据列表;关键词标引实际上是对文档标引的逆标引,根据wordID标引出这个词出如今那些网页(用wordID表 示),出如今每一个网页的次数、位置、大小写格式等,造成wordID对应docID的列表。 数据结构

关于索引数据的详细数据结构,有兴趣的朋友能够参看文献[4]。 搜索引擎

搜索的处理过程是对用户的搜索请求进行知足的过程,经过用户输入搜索关键字,搜索服务器对应关键词字典,把搜索关键词转化为wordID,而后在标引库中 获得docID列表,对docID列表进行扫描和wordID的匹配,提取知足条件的网页,而后计算网页和关键词的相关度,根据相关度的数值返回前K篇结 果(不一样的搜索引擎每页的搜索结果数不一样)返回给用户。若是用户查看的第二页或者第多少页,从新进行搜索,把排序结果中在第K+1到2*K的网页组织返回 给用户。其处理流程以下图所示:
blog