网站建设网站建设流程

搜索引擎工作原理

作者:Admin   发布时间:2012年12月19日 文字大小:[ ]



搜索引擎工作原理   大连开发区网站制作



一、             
搜索引擎工作过程非常复杂,接下来的几节我们简单介绍搜索引擎是怎么样实现网页排名的。这里的内容相对于真正的搜索引擎技术来说只是皮毛,不过对seo人员已经足够用了。



搜索引擎的工作过程大体上可以分成三个阶段。



(1)        爬行和抓取:搜索引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。



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



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



二、             
爬行和抓取



     爬行和抓取是搜索引擎工作的第一步,完成数据收集的任务。



1、 蜘蛛



  引擎用来爬行和访问页面的程序被称为蜘蛛(spider,也称为机器人(bot.搜索引擎蜘蛛访问网站页面时类似于普通用户使用的浏览器。蜘蛛程序发出页面访问请求后,服务器返回html代码,蜘蛛程序把收到的代码存入原始页面数据库。搜索引擎为了提高爬行和抓取速度,都使用多个蜘蛛并发分布爬行。



  蜘蛛访问任何一个网站时,都会先访问网站根目录下的robots.txt文件。如果robots文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址。



  和浏览器一样,搜索引擎蜘蛛也有标明自己身份代理名称,站长可以在日志文件中看到搜索引擎的特定名称,从而辨识引擎蜘蛛。下面列出常见的搜索引擎蜘蛛名称:



Baiduspider+(+http://www.baidu.com/search/spider.htm)
百度蜘蛛



Mozilla/5.0(compatible;yahoo!
Slurp China; http://misc.yahoo.com.cn/help.html)雅虎中国蜘蛛 
等等。我就不往下写了,自己可以去查一下!



2、 跟踪链接



   取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行那样,这也就是搜索引擎蜘蛛这个名称的由来。



  从理论上说只要给蜘蛛足够的时间,都能爬完整个互联网。在实际工作中,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面。



3、 吸引蜘蛛



由些可见,虽然理论上蜘蛛能爬行和抓取所有页面,但实际上不能、也不会这么做。Seo人员要想让自己的更多页面被收录,就要想方设法吸引蜘蛛来抓取。能抓取所有页面,蜘蛛所要做的就是尽量抓取重要页面。哪些页面被认为比较要呢?有几个方面影响因素。



1)  网站和页面权重。质量高、资格老的网站被认为权重比较高,这种止的页面被爬行的深度也会比较高,所以会有更多内页被收录。



2)  页面更新度。蜘蛛每次爬行都会把页面数据存储起来。如果第二次爬行发现页面与第一收录的完全一样,说明页面没有更新,蜘蛛也就没有必要经常抓取。如果页面内容经常更新,蜘蛛就会更加频繁地访问这种页面,页面上出现的新链接也自然会被蜘蛛更快的跟踪,抓取新页面。



3)  导入链接。无论是外部链接还是同一个网站的内部链接,要被蜘蛛抓取,就必须有导入链接进入页面,否则蜘蛛根本没有机会知道页面的存在。高质量的导入链接也经常使页面上的导出链接被看待深度增加。



4)  与首页点击距离。一般来说网站上权重最高的是首页,大部分外部链接是指向首页的,蜘蛛访问最频繁的也是首页。离首页点击距离越近,页面权重越高,被蜘蛛爬行的机会也越大。



4、 爬行时的复制内容检测



   删除复制内容通常是在下面的预处理过程中进行的,但现在的蜘蛛在爬行和抓取文件时也会进行一定程度的复制内容检测。遇到权重很低的网站上大量转载或抄袭内容时,很可能不再继续爬行。这也就是有的站长在日志文件中发现了蜘蛛,但页面从来没有被真正收录过的原因。



预处理



  在一些seo材料中,“预处理”也被简称为“索引”,因为索引是预处理最主要的步骤。



搜索引擎蜘蛛抓取的原始页面,并不能直接用于查询排名处理。搜索引擎数据库中的页面数都在数万亿级别以上,用户输入搜索词后,靠排名程序实时对这么多页面分析相关性,计算量太大,不可能在一两秒内返回排名结果。因此抓取来的页面必须经过预处理,为最后的查询排名做好准备。



和看爬行抓取一样,预处理也是在后台提前完成的,用户搜索时感觉不到这个过程。



1、  提取文字

现在的搜索引擎还是以文字内容为基础。蜘蛛获取到的页面中的html代码,除了用户在浏览器上可以看到的可见文字外,还包含了大量的html格式标签、javascript程序等无法用于排名的内容。搜索引擎预处理首先要做的就是从html文件中去除标签、程序,提取出可以用于排名处理的网页文字内容。



比如这下面这段html代码:



 

<div id=”post” class=”ost”>

     <div class=
posttitle>

        <h2><a href=”http:www.baidu.com”>
今天是什么节日?</a></h2>



</div>

</div>

除去html代码后,剩下的就用于排名的文字只是这一行:

               
今天是什么节日?

除了可见文字,搜索引擎也会提取出一些特殊的包含文字信息的代码,如Meta 标签中的文字、图片替代文字、flash文件的替代文字、链接锚文字等。



2、 中文分词



   中文搜索引擎特有的步骤。搜索引擎存储和处理页面及用户都是以词为基础的。英文等语言单词与单词之间有空格分隔,搜索引擎索引程序可以直接把句子划分为单词的集合。而中文词之间没有任何分隔符,一个句子中的所有字和词都是连在一起的搜索引擎必须首先分辨哪几个字组成一个词,哪些字本身就是一个词。比如“减肥方法”将被分词为“减肥”和“方法“两个词。

   
方法基本上有两种,一种是基于词典匹配,另一种是基于统计。

   
匹配的方法是指,将待分析的一段汉字与一个事先造好的词典中的词条进行匹配,在待分析汉字串中扫描到词典中己有的词条则匹配成功,或者说切分出一个单词。



   按照扫描方向,基于词典的匹配法可以分为正向匹配和逆向匹配。按照匹配长度优先级的不同,又可以分为最大匹配和最小匹配。将扫描方向和长度优先混合,难能可贵以产生正向最大匹配、逆向最大匹配等不同方法。

 
词典匹配方法计算简单,准确度在很大程序上取决于词典的完整性和更新情况。几个字相邻出现越多,就越可能形成一个单词。基于统计的方法的优势是对新出现的词反应更快速,也有利于消除歧义。



    基于词典匹配和基于统计的分词方法各有优劣,实际使用中的分词系统都是混合使用两种方法的,快速高效,又能识别生词、新词,消除歧义。



   索引擎对页面的分词取决于词库的规模、准确性和分词算法的好坏,而不是取决于页面本身如何,所以seo人员对分词所能做的很少。唯一能做的就是在页面上用某种形式提示搜索引擎,某几个字应该被当做一个词处理,尤其是可能产生歧义的时候,比如在页面标题、h1标签及黑体中出现关键词。如果页面是关于“和服“的内容,那么可以把“和服”这两个字特意标为黑体。如果页面是关于“化妆和服装”,可以把“服装”两个字标为黑体。这样,搜索引擎对页面进行分析时就知道标为团体的应该是一个词。



3、 去停止词



  是英文还是中文,页面内容中都会有一些出现频率很高,却对内容没有任何影响的词,如“的”、“地”、“得”之类的肋条词,“啊”、“哈”、“呀”之类的感叹词,“从而”、“以”、“却”之类的副词或介词。这些词被称为停止词,因为它们对页面的主要意思没什么影响。英文中的常见停止有 the,a,an,to,of等。



   索引擎在索引页面之前会去掉这些停止词,使索引数据主题更为突出,减少无谓的计算量。



4、 消除噪声



   分页面上还一部分内容对页面主题也没有什么贡献,比如版权声明文字、导航条、广告等。以常见的干博客导航为例,几乎每个博客页面上都会出现文章分类、历史存档等导航内容,但是这些页面本身与“分类”、“历史”这些词都没有任何关系。用户搜索“历史”、“分类”这些关键词时公公因为页面上有这些词出现而返回博客帖子是毫无意义的,完全不相关。所以这些区块都属于噪声,对页面主题只能起到分散作用。



   擎需要识别并消除这些噪声,排名时不使用噪声内容。消噪的基本方法是根据html标签对页面分块,区分出页头、导航、正文、页脚、广告等区域,在网站上大量重复出现的区块往往属于噪声。对页面进行消噪后,剩下的才是页面主体内容。



5、 去重



  引擎还需要对页面进行去重处理。



   文章经常会重复出现在不同网站及同一个网站的不同网址上,搜索引擎并不喜欢这种重复性的内容。用户搜索时,如果在前两页看到的都是来自不同网站的同一篇文章,用户体验就太差了,虽然都是内容相关的。搜索引擎希望只返回相同文章中的一篇,所以在进行索引前还需要识别和删除重复内容,这个过程就称为“去重”。



  去重的基本方法是对页面特征关键词计算指纹,也就是说从页面主体内容中选取最有借到性的一部分关键词(经常是出现
频率最高的关键词),然后计算这些关键词的数字指纹。这里的关键词选取是在分词、去停止词、消噪之后。实验表明,通常选取10个特征关键词就可以达到比较高的计算准确性,再选取多词对去重准确性提高的贡献也就不大了。



6、 正向索引



正向索引也可以简称为索引。



提取、分词、消噪、去重后,搜索引擎得到的就是独特的、能反映页面主体内容的、以词为单位的内容。接下来搜索引擎索引程序就可以提取关键词,按照分词程序划分好的词,把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上的出现频率、出现次数、格式(如出现在标题标签、黑体、H标签、锚文字等)、位置(如页面第一段文字等)。这样,每一个页面都可以记录为一串关键词集合,其中每个关键词的词频、格式、位置等权重信息也都记录在案。



搜索引擎索引程序将页面及关键词形成表结构存储进索引库。简化的索引词表形式如表1

  每个文件都对应一个文件ID,文件内容被表示为一串关键词的集合。实际上在搜索引擎索引库中,关键词也已经转换为关键词ID。这样的数据结构就称为正向索引。


7、 倒排索引

正向索引还不能直接用于排名。假设用户搜索关键词2,如果只存在正向索引,排名程序需要扫描所有索引为中的文件,找出包含关键词2的文件,再进行相关性计算。这样的计算量无法满足实时返回排名结果的要求。



所以搜索引擎会将正向索引数据库重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射,如表

8、 链接关系计算


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

Google pr值就是这种链接关系的最主要体现之一。其化搜索引擎也都进行类似计算,虽然它们并不称为pr


  由于页面和链接数量巨大,网上的链接关系又时时处在更新中,因此链接关系及Pr的计算要耗费很长时间。关于pr和链接分析,后面还有专门的章节介绍。


9、 特殊文件处理

除了html文件外,搜索引擎通常还能抓取各索引以文字为基础的多种文件类型,如Pdf/word/wps/xls/ppt/txt文件等。我们在搜索结果中也经常会看到这些文件类型。但目前的搜索引擎还不能处理图片、视频、flash这类非文字内容,也不能执行脚本和程序。


虽然搜索引擎在识别图片及从flash中提取文字内容方面有些进步,不过距离直接靠读取图片、视频、flash内容返回结果的目标还很远。对图片、视频内容的排名还往往是依据与之相关的文字内容,后面还会讲到整合搜索部分。













上一篇:利用seo提高网站权重的技巧  下一篇:网络营销策划基本原则