搜索引擎工作原理

浏览: 4,178 次 --

搜索引擎的含义

搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。

搜索引擎发展历程

第一代:人工分类目录(1997~2001年)

这个时代搜索引擎并没有什么高深的技术,就是人工去互联网上面找各种 高质量的网站和页面罗列出来,但是能够收录的网站数量非常有限,难以满足网民的需求。具有代表性的网站有Yahoo和hao123。

第二代:文本分析阶段(2001~2004年)

搜索引擎开始使用爬虫程序,开始主动抓取互联网上的网页,为了能够更好地帮助用户寻找优质的内容,这个阶段搜索引擎采用的技术主要是文本分析加索引排序的方法。不足之处是,很容易被一些SEO人员利用关键词堆砌的方法进行作弊。

第三代:链接分析阶段(2004~2009年)

搜索引擎研究出了以反向链接为核心的分析算法。搜索引擎认为,每个网页的链接就好比一个投票,一般能获得越多投票的页面,这个页面就应该更加重要。最后,搜索引擎通过结合网页文本分析和链接分析进行页面质量判断。以此来改善搜索结果。

这个阶段最具代表性的就是google(中文)使用的PageRank链接分析技术,并形成了“内容为王,外链为皇”的SEO优化法则。但是,随着钻漏洞的SEO人员开始通过大量购买外链、挂黑链、建站群做互链的方式作弊,一时间,互联网上充满了大量垃圾站点。

第四代:用户行为分析阶段(2009~现在)

随着时间的推移,搜索引擎积累了大量的用户行为数据(点击率、跳出率、停留时间等),搜索引擎开始把判断网页质量的权利交给了用户,导致站长不得不断提高用户的体验,把主要精力花在为用户提供优质内容之上。

在现阶段,用户行为分析的技术是各个搜索引擎的核心技术。

搜索引擎工作原理

搜索引擎工作原理流程图

第一阶段:爬行和抓取

搜索引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。

蜘蛛:搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称之为爬虫,还称做机器人(bot)。

百度蜘蛛名称Baiduspider,百度旗下同类型蜘蛛还有Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video(抓取视频)、Baiduspider-news(抓取新闻)。

例:Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

例:Baiduspider-image+(+http://www.baidu.com/search/spider.htm)

360蜘蛛名称360Spider。

例:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider

例:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1; 360Spider(compatible; HaosouSpider; http://www.haosou.com/help/help_3_2.html)

搜狗蜘蛛名称Sogou News Spider,搜狗蜘蛛还包括Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou Pic Spider、Sogou Orion spider。

例:Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

例:Sogou Pic Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

一搜蜘蛛名称YisouSpider。

例:YisouSpider

谷歌蜘蛛名称Googlebot。

例:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

必应蜘蛛名称bingbot。

例:Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

蜘蛛跟踪链接的方式:广度优先遍历策略、深度优先遍历策略,一般两者混合使用。

广度优先遍历和深度优先遍历

地址库:为了避免重复爬行和抓取网址,搜索引擎会建立一个地址库,记录已经被发现还没有抓取的页面。地址库中的URL来源:人工录入的种子网站、蜘蛛抓取后地址库没有的URL、站长提交网址。

影响蜘蛛抓取的因素:网站和页面权重、页面更新度、导入链接、与首页点击距离、网站速度、中文路径。

文件存储:搜索引擎抓取的数据存入原始页面数据库,并编号。

爬行时复制内容检测:对低权重网站上大量转载或抄袭内容,很可能不在继续爬行。

第二阶段:预处理

索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,以备排名程序调用。

提取文字:从HTML文件中去除标签、程序,提取出可以用于排名处理的页面文字内容。包括Meta标签中的文字、图片替代文字、Flash文字的替代文字、链接锚文字等。

中文分词:词典匹配:在待分析汉字串中扫描到词典中已有的词条则匹配成功,或者说切分出一个单词。(快速高效)。统计分词:分析大量文本,计算出字与字相邻出现的统计概率,几个字相邻出现越多,就越可能形成一个单词。(识别生词、新词,消除歧义)

去停止词:一些出现频率很高,却对内容没有任何影响的词称为停止词。比如:助词(的,地,得),感叹词(啊,哈,呀),副词或介词(从而,以,却)等。去掉这些停止词,使索引数据主题更为突出,减少无谓的计算量。

消除噪声:根据HTML标签对页面分块,区分出页头、导航、正文、页脚、广告等区域,在网站上大量重复出现的区块往往属于噪声。对页面进行消噪后,剩下的才是页面主体内容。排名时不使用噪声内容。

去重:从页面主体内容中选取一部分最具有代表性的关键词(常是高频词),计算这些关键词的数字指纹。这里的关键词选取是在分词、去停止词、消噪之后,实验表明,通常选取10个特征关键词就可以达到比较高的计算准确性。从去重算法中得出,简单地增加“的”,“地”,“得”,调换段落顺序这种所谓伪原创,并不能逃过搜索引擎的去重算法。且搜索引擎的去重算法不止于页面级别,而是进行到段落级别,混合不同文章、交叉调换段落顺序也不能使转载和抄袭变成原创。

正向索引:按照分词程序划分好的词,把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上的频率、次数、格式、位置。

正向索引表

倒排索引:正向索引不能直接用于排名。搜索引擎将正向索引数据库重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射。这样当用户搜索某个关键词时,排序程序在倒排索引中定位到这个关键词,可以马上找出所有包含这个关键词的文件。

倒排索引表

链接关系计算:现在所有的主流搜索引擎排名中都包含网页之间的链接流动信息。搜索引擎在抓取页面内容后,必须事前计算出:页面上有哪些链接指向哪些其他页面,每个页面有哪些导入链接,链接使用了什么锚文字,这些复杂的链接指向关系形成了网站和页面的链接权重。

特殊文件处理:除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如PDF、Word、WPS、XLS、PPT、TXT文件等。我们在搜索结果中也经常会看到这些文件类型。但目前的搜索引擎对图片、视频、Flash这类非文字内容读取还差很远,对图片、视频内容的排名还往往是依据与之相关的文字内容,也不能执行脚本和程序。

第三阶段:排名

用户输入关键词后,排名程序调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面。

搜索词处理:用户输入的搜索词,搜索引擎需要对搜索词做一些处理,才能进入排名过程。包括以下几方面:中文分词、去停止词、指令处理、拼写错误矫正、整合搜索触发。

文件匹配:文件匹配阶段就是找出含有所有关键词的文件,倒排索引使得文件匹配能够快速完成。

初始子集的选择:搜索引擎进行文件匹配时,找到的文件经常有几十万,甚至上千万个,但实际上大部分用户只会查看前两页,所以,搜索引擎也需要计算那么多页面的相关性。百度搜索结果中,用户最多可以查看到76页的内容。初始子集的数目是多少?外人并不知道。不过,当匹配页面巨多时,搜索引擎肯定选出页面权重较高的一个子集,再对子集中的页面进行相关性计算。

相关性计算:计算相关性是排名过程中最重要的一步,主要影响因素如下:关键词常用程度、词频及密度、关键词位置及形式、关键词距离、链接分析及页面权重。

排名过滤及调整:计算相关性后,大体排名就已经确定了,之后搜索引擎可能还有一些过滤算法,对排名进行轻微调整,其中最主要的过滤就是施加惩罚。一些有作弊嫌疑的页面,虽然按照正常的权重和相关性计算排到前面,但搜索引擎的惩罚算法却可能在最后一步把这些页面调到后面去。

排名显示:所有排名确定后,排名程序调用原始页面的标题标签、说明标签、快照日期等数据显示在页面上。有时搜索引擎需要动态生成页面摘要,而不是调用页面本身的说明标签。

搜索显示内容

搜索缓存:用户搜索的关键词有很大一部分是重复的。如果每次搜索都重新处理排名可以说是很大的浪费。搜索引擎会把最常见的搜索词存入缓存,用户搜索时直接从缓存中调用,而不必经过文什匹配和相关性计算,大大提高了排名效率,缩短了搜索反应时间。

查询及点击日志:搜索用户的IP地址、搜索的关键词、搜索时间,以及点击了哪些结果页面,搜索引擎都记录形成日志。这些日志文件中的数据对搜索引擎判断搜索结果质量、调整搜索算法、预期搜索趋势等都有重要意义。

百度搜索引擎的算法

百度为了不断提高用户体验,几乎每个月都会有算法在进行更新,会让我们越做越累。我们可以关注搜索引擎官方公布的算法更新动态,掌握一些细节的操作方法。但是,不必放太多精力在深究算法上面,应该把最大的精力放在满足用户需求之上。

百度搜索引擎算法

常见搜索引擎

搜索引擎 网址
百度 http://www.baidu.com
360搜索 http://www.so.com
搜狗 http://www.sogou.com
必应 http://cn.bing.com
有道 http://www.youdao.com
Yahoo http://sg.search.yahoo.com
神马 http://m.sm.cn
Google http://www.google.cn

截止2014年9月1日,中国搜索引擎市场百度占有率为51.54%,360搜索占有率为28.09%,搜狗搜索占有率13.29%,这三家搜索引擎占据了中国搜索引擎市场的98%,而Google中文,bing等在中国的搜索市场上占有率则无法与本土搜索引擎相比。神马是UC和阿里2013年已经成立合资公司推出的移动搜索引擎。

搜索引擎核心竞争力指标:查询速度快、信息最全面、查询结果最准确。

高级搜索指令

site:用来搜索某个域名下的所有文件,是查询网站收录页面数的最直接方法。

inurl:搜索查询词出现在URL中的页面。

intitle:搜索返回的是页面title中包含关键词的页面。

搜索引擎和SEO的关系

搜索引擎之间的竞争指标就是用户量,如何获得更多用户量呢?当然要想办法帮助用户更方便的找到优质内容。也就是说,搜索引擎需要判断哪些页面是优质的,然后尽可能把这些优质网页排在前面,才有可能满足搜索用户的需求。

所以,SEO人员需要考虑的问题,应该是如何把自己的网站内容做得更加优质,不是研究搜索引擎的算法,或是找搜索引擎的漏洞。