1.搜索引擎架构图
(a)抓取网页
通过网络爬虫将互联网的信息获取到本地. 因 为互联网页面中有相当大比例的内容是完全相同或者近似重复的,"网页去重"模块会对此做 出检測,并去除重复内容。
(b)建立索引
抓取到网页后,搜索引擎会对网页进行解析,抽取出网页主体内容和相关信息,(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等)。根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页建立索引。为了加快响应用户査询的速度,网页内容通过"倒排索引"这种高效查询数据 结构来保存,而网页之间的链接关系也会予以保存。之所以要保存链接关系,是因为这种关系 在网F相关性排序阶段是可利用的,通过"链接分析"可以判断页面的相对重要性,对于为用 户提供准确的搜索结果帮助很大。
由于网页数量太多,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果 使用单台或者少量的机器明显是不现实的。Google等商业搜索引擎为此开发了一整套云存储与 云计算平台,使用数以万计的普通廉价PC搭建了海量信息的可靠存储与计算架构,以此作为搜索 引擎及其相关应用的基础支撑。优秀的云存储与云计算平台已经成为大型商业搜索引擎的核心 竞争力。 上面所述是搜索引擎如何获取并存储海量的网页相关信息,这些功能因为不需要实时计 算,所以可以被看做是搜索弓I擎的后台计算系统。
(c)查询词分析
对查询词进行分析,希望能够结合查询词和 用户信息来正确推导用户的真正搜索意图。在此之后,首先在缓存中査找,搜索引擎的缓存系 统存储了不同的查询意图对应的搜索结果,如果能够在缓存系统找到满足用户需求的信息,则 可以直接将搜索结果返回给用户,这样既省掉了重复计算对资源的消耗,又加快了响应速度;
(d)搜索结果排序
如果保存在缓存的信息无法满足用户需求,搜索引擎需要调用"网页排序"模快功能,根据用 户的査询实时计算哪些网页是满足用户信息需求的,并排序输出作为搜索结果。而网页排序最 重要的两个参考因素中,一个是内容相似性因素,即哪些网页是和用户查询密切相关的;另外 一个是网页重要性因素,即哪些网页是质量较好或者相对重要的,这点往往可以从链接分析的 结果获得。结合以上两个考虑因素,就可以对网页进行排序,作为用户查询的搜索结果。