搜索引擎最重要的是什么?有人会说是查询结果的准确性,有人会说是查询结果的丰富性,但其实这些都不是搜索引擎最最致命的地方。对于搜索引擎来说,最最致命的是查询时间。试想一下,如果你在百度界面上查询一个关键词,结果需要5分钟才能将你的查询结果反馈给你,那结果必然是你很快的舍弃掉百度。
搜索引擎为了满足对速度苛刻的要求(现在商业的搜索引擎的查询时间单位都是微秒数量级的),所以采用缓存支持查询需求的方式,也就是说我们在查询搜索时所得到的结果并不是及时的,而是在其服务器已经缓存好了的结果。那么搜索引擎工作的大体流程是什么样子呢?我们可以理解为三段式。
本文仅仅是对着三段工作流程进行大体上的讲解与综述,其中一些详细的技术细节将会用其它的文章进行单独的讲解。
一、网页搜集
网页搜集,其实就是大家常说的蜘蛛抓取网页。那么对于蜘蛛(google称之为机器人)来说,他们感兴趣的页面分为三类:
1.蜘蛛从未抓去过的新页面。
2.蜘蛛抓去过,但页面内容有改动的页面。
3.蜘蛛抓取过,但现在已删除了的页面。
那么如何行之有效的发现这三类页面并进行抓取,就是spider程序设计的初衷与目的。那么这里就涉及到一个问题,蜘蛛抓取的起始点。
每一位站长只要你的网站没有被严重降权,那么通过网站后台的服务器,你都可以发现勤劳的蜘蛛光顾你的站点,但是你们有没有想过从编写程序的角度上来说,蜘蛛是怎么来的呢?针对于此,各方有各方的观点。有一种说法,说蜘蛛的抓取是从种子站(或叫高权重站),依照权重由高至低逐层出发的。另一种说法蜘蛛爬在URL集合中是没有明显先后顺序的,搜索引擎会根据你网站内容更新的规律,自动计算出何时是爬取你网站的最佳时机,然后进行抓取。
其实对于不同的搜索引擎,其抓取出发点定然会有所区别,针对于百度,Mr.Zhao较为倾向于后者。在百度官方博客发布的《索引页链接补全机制的一种办法》(地址:http://stblog.baidu-tech.com/?p=2057)一文中,其明确指出“spider会尽量探测网页的发布周期,以合理的频率来检查网页”,由此我们可以推断,在百度的索引库中,针对每个URL集合,其都计算出适合其的抓
搜索引擎为了满足对速度苛刻的要求(现在商业的搜索引擎的查询时间单位都是微秒数量级的),所以采用缓存支持查询需求的方式,也就是说我们在查询搜索时所得到的结果并不是及时的,而是在其服务器已经缓存好了的结果。那么搜索引擎工作的大体流程是什么样子呢?我们可以理解为三段式。
本文仅仅是对着三段工作流程进行大体上的讲解与综述,其中一些详细的技术细节将会用其它的文章进行单独的讲解。
一、网页搜集
网页搜集,其实就是大家常说的蜘蛛抓取网页。那么对于蜘蛛(google称之为机器人)来说,他们感兴趣的页面分为三类:
1.蜘蛛从未抓去过的新页面。
2.蜘蛛抓去过,但页面内容有改动的页面。
3.蜘蛛抓取过,但现在已删除了的页面。
那么如何行之有效的发现这三类页面并进行抓取,就是spider程序设计的初衷与目的。那么这里就涉及到一个问题,蜘蛛抓取的起始点。
每一位站长只要你的网站没有被严重降权,那么通过网站后台的服务器,你都可以发现勤劳的蜘蛛光顾你的站点,但是你们有没有想过从编写程序的角度上来说,蜘蛛是怎么来的呢?针对于此,各方有各方的观点。有一种说法,说蜘蛛的抓取是从种子站(或叫高权重站),依照权重由高至低逐层出发的。另一种说法蜘蛛爬在URL集合中是没有明显先后顺序的,搜索引擎会根据你网站内容更新的规律,自动计算出何时是爬取你网站的最佳时机,然后进行抓取。
其实对于不同的搜索引擎,其抓取出发点定然会有所区别,针对于百度,Mr.Zhao较为倾向于后者。在百度官方博客发布的《索引页链接补全机制的一种办法》(地址:http://stblog.baidu-tech.com/?p=2057)一文中,其明确指出“spider会尽量探测网页的发布周期,以合理的频率来检查网页”,由此我们可以推断,在百度的索引库中,针对每个URL集合,其都计算出适合其的抓