搜索引擎的工作原理
搜索引擎要“知道”网上的新生事物,就得派“人”出去收集。每天都有新的网站,每天都有新的内容,而且这些新的内容是爆炸式的,靠人工不可能完成收集任务,所以搜索引擎的发明者就设计了一个计算机程序来执行这个任务,而这个计算机程序被人们称为“探测器”。
探测器有很多叫法,如Crawler(爬行器)、Spider(蜘蛛)、Robot(机器人)。这些叫法形象地描绘了搜索引擎派出的蜘蛛机器人爬行在互联网上探测新信息的情景,Google的探测器叫做Googlebot,百度的探测器叫做Baiduspider,Yahoo的探测器叫做Slurp。无论名字是什么,它们都是人们编制的计算机程序。它们不分昼夜地访问各个网站,取回网站的内容、标签、图片等,然后依照搜索引擎的算法给定制索引。
搜索引擎的工作过程可简略分为以下3个阶段。
(1)爬行抓取:搜索引擎的蜘蛛程序通过链接爬行到网站,获得网站页面的HTML代码并存入数据库。
(2)索引处理:蜘蛛程序把抓取的页面数据中的文字、图片等信息进行索引处理,为排名做准备。
(3)排名:用户输入关键词后,搜索引擎的排名算法调用索引数据库中的信息计算并处理数据,然后按照相应的格式生成结果页面。
.1 爬行抓取
爬行抓取是搜索引擎工作的第一步,主要完成数据收集工作
搜索引擎蜘蛛程序通过网页的链接地址来寻找网页,从网站的某一个页面(通常是首页)开始,读取网页的内容,找到网页中的其他链接地址,然后通过这些链接地址寻找下一个网页,一直这样循环下去,直到把这个网站的所有网页都抓取为止。如果网站的内容质量不高或者有大量重复信息,蜘蛛程序就没有“耐心”抓取网站里的所有信息了。
如果把整个互联网当成一个网站,那么蜘蛛程序就可以用这个原理把互联网上所有的网页都抓取下来。但是,在实际的工作中,搜索引擎蜘蛛程序是不能抓取所有的互联网信息的,毕竟蜘蛛程序的带宽资源、时间都不是无限的,它不可能“爬”到所有的页面。受到这些因素的制约,搜索引擎只能爬行和收录互联网信息的一小部分。
2 索引处理
抓取网页后,由分析索引系统程序对收集回来的网页进行分析,提取相关信息(包括网页所在URL、编码类型、页面内容包含的所有关键词、关键词的位置、生成时间、大小、与其他网页的链接关系等),根据一定的相关度算法进行大量复杂的计算,得到每一个网页针对页面文字及超链中每一个关键词的相关度(或重要性),然后用这些信息建立网页索引数据库。
任何搜索引擎在进行内容索引的时候都是以文字为基础的。搜索引擎在抓取页面的时候,并非只访问用户能看到的文字信息,还包含大量的HTML代码、CSS代码、JavaScript代码等对排名没有作用的内容。抓取页面之后,搜索引擎就要处理这些信息,从HTML代码中分离出标签、代码,提取有利于网站排名处理的页面文字内容。
一大串字符中,除去这些HTML代码后,剩下的文字只有“英国虚拟主机商Host1Plus发布中文站”一行。通过这个例子可以看出,搜索引擎在抓取页面代码后,要取出有用的文字信息,以方便接下来的排名工作。
3 排名
建立网页索引数据库后,当用户输入关键词并进行搜索时,搜索系统程序会从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照相关度数值排序,相关度越高,排名越靠前。
影响相关性的因素包含如下几个方面。
关键词出现的位置:页面关键词出现的位置会被搜索引擎抓取并记录到索引库中。会对搜索引擎排名造成影响的关键词位置包括标题<title>标签、<H1>标签等。
关键词出现频率:一般来说,关键词在页面中出现的频率越高,密度越大,说明页面与搜索词的相关性越高,那么网页的排名也较好。但是,如果刻意造成页面关键词堆积,页面不仅不会有较好的排名,而且会受到搜索引擎的“惩罚”。所以,在进行页面内容优化的时候,要注意关键词的密度、频率都不要太大。
页面的链接也影响着关键词的相关性。如果页面中有较多的搜索词为锚文本链接,就说明页面的相关性比较强,这会对搜索引擎相关性的计算产生影响。
相关性计算完毕,搜索引擎可能还有一些过滤算法用于对排名进行调整。虽然这些过滤算法包含对页面作弊嫌疑的判定,相关性较高的页面理应排在搜索结果的前面,但是搜索引擎的过滤算法可在最后的排名中把网站的排名调整到后面去。
经过相关性算法、过滤算法之后,所有的关键词排名都确定了,排名程序调用原始页面的信息,并把这些信息在搜索结果中显示出来。