(2)搜索引擎工作原理

第2章:搜索引擎工作原理

本章主要介绍搜索引擎的工作流程及原理,覆盖了从搜索引擎对页面的收录、分析、排序到关键字查询的全过程。此外,还讲述了搜索引擎各主要工作与搜索引擎优化之间的对应关系,为学习搜索引擎优化提供了理论根据。

2.1 搜索引擎发展历史

随着互联网信息的爆炸性增长,用户想要在互联网中寻找到所需信息就如同大海捞针,这时为了满足大众信息检索需求的专业搜索引擎应运而生。

现实意义上的搜索引擎是1990年由蒙特利尔大学学生Alan Emtage开发的Archie。虽然当时World Wide Web还未出现,但网络中文件传输已经相当频繁,而且由于大量的文件散布在各个不同的FTP服务器中,形成了巨量的信息源。Alan Archie依靠脚本程序搜索网络上的文件,再对其进行索引,供使用者查询。由于Archie深受用户欢迎,受其启发,美国内华达System Computing Services大学于1993年开发了另一个类似的搜索工具,不过该搜索工具除了能索引文件外,而且还能检索网页。

当时,“机器人”一词十分流行,“机器人”是指快速不间断地执行某项任务的程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎“机器人”程序也被称为“蜘蛛”程序。世界上第一个监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用于统计互联网上服务器的数量,后来发展成为能够检索网站域名。与Wanderer相对应,Martin Koster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立自己的链接索引,类似雅虎分类目录。

随着互联网的快速发展,检索新出现的网页变得越来越困难,因此,在Matthew Gray的Wanderer基础上,将传统的“蜘蛛”程序作了改进。其设想是,既然所有网页都可能存在指向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,其中以JumpStation、The World Wide Web Worm(Goto的前身,也就是今天Overture,已被雅虎收购),和Repository-Based Software Engineering (RBSE) spider最负盛名。然而JumpStation和WWW Worm只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。而RBSE是第一个在搜索结果排列中引入关键字串匹配程度概念的搜索引擎。最早现代意义上的搜索引擎出现于1994年7月。当时Michael Mauldin将John Leavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos。同年4月,斯坦福(Stanford)大学的两名博士生,David Filo和美籍华人杨致远(Gerry Yang)共同创办了超级目录索引雅虎,并成功地使搜索引擎的概念深入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也今非昔比。例如:Google号称数据库中存放的网页已达40亿!

2.2 搜索引擎分类

搜索引擎按照工作方式可以分为三种,分别是“全文搜索引擎”、“目录索引类搜索引擎”及“元搜索引擎”。

2.2.1 全文搜索引擎

全文搜索引擎是名副其实的搜索引擎,国外具代表性的全文搜索引擎有Google,Yahoo!;而国内比较著名的全文搜索引擎就有百度等。它们都是通过从互联网上提取各网站的信息(以网页文字为主)而建立数据库,再从这个数据库中检索与用户查询条件相匹配的相关记录,最后把这些记录按照一定的排列顺序返回给用户。

从搜索结果来源的角度,全文搜索引擎拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自行建立网页数据库,搜索结果就直接从自身的数据库中调用。

2.2.2 目录搜索引擎

目录搜索引擎虽然具备搜索功能,但严格地说并不是搜索引擎,仅仅是按照类别向用户展示相关网站列表的普通网站而已。目录搜索引擎中最具代表性的要数雅虎了(雅虎通过一轮番的并购及研发,已经挤身顶尖全文搜索引擎行列),其他还有ODP (即DMOZ)等。

2.2.3 元搜索引擎

元搜索引擎在接受用户查询请求的时候,会同时在其他多个搜索引擎上进行搜索,并将结果返回给用户,著名的元搜索引擎有Dogpile、Vivisimo等。在搜索结果排列方面,有的直接按照来源排列搜索结果,例如:Dogpile;而有的则是按照自定的规则将结果重新排列组合后再返回给用户,例如:Vivisimo。

除上述三大类搜索引擎以外,还有以下几种非主流形式的搜索引擎:

1. 集合式搜索引擎:这一类搜索引擎与元搜索引擎类似,但区别在于不是同时调用多个搜索引擎进行搜索,而只是让用户从提供的搜索引擎中进行选择,例如:HotBot在2002年底推出的搜索引擎。

2. 门户搜索引擎:虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,它的搜索结果完全来自其他搜索引擎,例如:国内的“新浪”及“搜搜”的搜索功能就是由Google提供的。

3. 免费链接列表(Free For All Links,简称FFA):也就是常见的链接交换系统,这类网站一般只简单地排列出网站的链接条目,一小部分还会有简单的分类目录,不过规模比起Yahoo这样的人工分类目录要小得多。

2.3 搜索引擎工作原理

搜索引擎优化的主要任务之一就是提高网站的搜索引擎友好性,因此,搜索引擎优化的每一个环节都会与搜索引擎工作流程存在必然的联系,研究搜索引擎优化实际上就是对搜索引擎工作过程进行逆向推理。因此,学习搜索引擎优化应该从了解搜索引擎的工作原理开始。

搜索引擎的主要工作包括:“页面收录”、“页面分析”、“页面排序”及“关键字查询”。

1. 页面收录

页面收录就是指搜索引擎通过蜘蛛程序在互联网上抓取页面并进行储存的过程,为搜索引擎开展各项工作提供了数据支持。

2.页面分析

页面分析首先是对原始页面建立索引,实现对页面的快速定位;然后,提取页面的正文信息,并对正文信息进行切词以及为这些词(即:关键字)建立索引,从而得到页面与关键字的之间对应关系;最后,对所有关键字进行重组,并建立关键字与网页间对应关系的反向索引列表,从而实现根据关键字快速定位至相应的网页。

3.页面排序

搜索引擎结合页面的内外部因素计算出页面与某个关键字的相关程度,从而得到与该关键字相关的页面排序列表。

4.关键字查询

搜索引擎接收来自用户的查询请求,并对查询信息进行切词及匹配以后,再向用户返回相应的页面排序列表。

在本章接下来的内容里将向读者介绍搜索引擎各个主要工作的流程、原理及作用,以及在对网站进行优化时应该如何应对。

2.3.1 搜索引擎对页面的收录

搜索引擎收录页面实际上就是在互联网上进行数据采集,这是搜索引擎最基础的工作。搜索引擎的数据采集能力直接决定搜索引擎可提供的信息量及对互联网覆盖的范围,从而影响搜索引擎的质量。因此,搜索引擎总是想方设法地提高它的数据采集能力。

在本节里,首先会介绍搜索引擎收录页面的流程及方式,再介绍搜索引擎对已收录页面的储存及维护方式。

1.页面收录流程

在互联网中,URL是每一个页面的入口地址,搜索引擎蜘蛛程序就是通过URL抓取到页面的。搜索引擎蜘蛛程序从URL列表出发,通过URL抓取并储存原始页面;同时,提取原始页面中的URL资源并加入到URL列表中;如此不断地循环就可以从互联网中获取到足够多的页面,如下图 2-1所示。

__________________

注①:搜索引擎利用数据采集程序在互联网上抓取数据,我们称这个数据采集程序为蜘蛛程序(spider)或者机器人程序(robot)。

图 2-1 搜索引擎抓取页面简单流程

URL是页面的入口,而域名则是一个网站的入口。搜索引擎蜘蛛程序通过域名进入网站,从而展开对网站页面的抓取。换而言之,搜索引擎要在互联网上抓取到页面的首要任务就是建立一个足够大的域名列表,再通过域名进入相应的网站,从而抓取这个网站中的页面。

而对于网站来说,如果想要被搜索引擎收录,首要的条件就是加入搜索引擎的域名列表。下面向大家介绍两种常用的加入搜索引擎域名列表的方法:

第一,利用搜索引擎提供的网站登录入口,向搜索引擎提交我们网站的域名,例如:Google的网站登录地址:“http://www.google.com/intl/zh-CN/add_url.html”。对于提交的域名列表,搜索引擎只会定期进行更新。因此,这种做法比较被动,从域名提交到网站被收录花费的时间也比较长。

第二,通过与外部网站建立链接关系,使搜索引擎可以通过外部网站发现我们的网站,从而实现对网站的收录。这种做法主动权掌握在我们自己的手里(只要我们拥有足够多高质量的链接即可),而且收录速度也比向搜索引擎主动提交要快得多。视乎外部链接的数量、质量及相关性,一般情况下,2-7天左右就会被搜索引擎收录。

2.页面收录 ①

通过上面的介绍,相信读者们已经掌握了加快网站被搜索引擎收录的方法。然而,怎样才能提高网站中页面被收录的数量呢?这就要从了解搜索引擎收录页面的工作原理开始。

如果把网站页面组成的集合看作是一个有向图,从指定的页面出发,沿着页面中的链接,按照某种特定的策略对网站中的页面进行遍历。不停地从URL列表中移出已经访问过的URL,并储存原始页面,同时提取原始页面中的URL信息;再将URL分为域名及内部URL两大类,同时判断URL是否被访问过,将未被访问过的URL加入URL列表中。递归地扫描URL列表,直至耗尽所有URL资源为止。经过这些工作,搜索引擎就可以建立庞大的域

______________________

① 在实际中,我们只需要提交网站的首页地址或者网站的域名,搜索引擎就会跟踪首页中的链接去抓取其他页面。

名列表、页面URL列表及储存了足够多的原始页面,如下图 2-2所示。

图 2-2 搜索引擎收录页面的工作原理

3.页面收录方式

在上面的内容里,作者已经向大家介绍了搜索引擎收录页面的流程及原理。然而,在互联网数以亿计的页面中,搜索引擎怎样才能从中抓取到更多相对重要的页面呢?这就涉及搜索引擎的页面收录方式问题。

页面收录方式是指搜索引擎抓取页面时所使用的策略,目的是为了能在互联网中筛选出更多相对重要的信息。页面收录方式的制定取决于搜索引擎对网站结构的理解,如果使用相同的抓取策略,搜索引擎在同样的时间内可以在某一网站中抓取到更多的页面资源,则会在该网站上停留更长的时间,收录的页面数自然也就更多。因此,加深对搜索引擎页面收录方式的认识,会有利于为网站建立友好的结构,提高页面被收录的数量。

常见的搜索引擎收录页面的方式主要有“广度优先”、“深度优先”及“用户提交”三种,接下来将详细介绍这三种页面收录方式及各自的优缺点。

(1)广度优先

如果把整个网站看作是一棵树,首页就是根,每个页面就是叶子。广度优先就是从树的较浅层开始抓取页面,直至抓取完同一层次上的所有页面后才进入到下一层,是一种横向的页面抓取方式。因此,在对网站进行优化的时候,我们应该把网站中相对重要的信息展示在层次较浅的页面上(例如:在首页上推荐一些热门产品或者内容)。反过来,通过“广度优先”的抓取方式,搜索引擎就可以优先抓取到网站中相对重要的页面。

我们来看一下广度优先的抓取流程:首先,搜索引擎从网站的首页出发,抓取首页上所有链接指向的页面,形成页面集合(A),并解析出集合(A)中所有页面的链接;再跟踪这些链接抓取下一层的页面,形成页面集合(B);就这样递归地从浅层页面中解析出链接,

从而抓取深层页面,直至满足了某个设定的条件后才停止抓取进程,如下图 2-3所示。

图 2-3 “广度优先”抓取流程

(2)深度优先

与“广度优先”的抓取方式恰恰相反,“深度优先”首先跟踪的是浅层页面中的某一个链接从而逐步抓取深层次页面,直至抓取完最深层次的页面后才返回浅层页面继续向深层页面抓取,是一种纵向的页面抓取方式。使用深度优先的抓取方式,搜索引擎可以抓取到网站中比较隐蔽、冷门的页面,这样才能满足更多用户的需求。

我们来看一下深度优先的抓取流程:首先,搜索引擎会抓取网站的首页,并提取首页中的链接;再沿着其中的一个链接抓取到“页面1-1”,同时提取其中的链接;接着,沿着“页面1-1”中的一个链接“A-1”抓取到“页面2-1”,同时提取其中的链接;再沿着“页面2-1”中的一个链接“B-1”继续抓取更深一层的页面。这样递归地执行,直至抓取到网站最深层的页面或者满足了某个设定的条件才转回到首页继续抓取,如下图 2-4所示。

图 2-4 “深度优先”抓取流程

(3)用户提交

为了抓取到更多的网页,搜索引擎还允许网站管理员主动提交页面。网站管理员只需把网站中页面的URL按照指定的格式制作成文件,提交给搜索引擎,搜索引擎就可以通过该文件对网站中的页面进行抓取及更新。

这种由网站管理员主动提交页面的方式大大提高了搜索引擎抓取页面的效率及质量;而对于网站本身来说,也大大提高了网站页面被收录的数量(目前Google及Yahoo!都支持这种页面抓取方式)。

为了提高抓取页面的效率及质量,搜索引擎会结合多种方式去抓取页面。例如:先使用“广度优先”的方式,把抓取范围铺得尽可能宽,获取到尽可能多的重要页面;再使用“深度优先”的方式,抓取更多隐蔽的页面;最后,结合用户提交的信息,抓取那些被遗漏的页面。

4.如何避免重复性收录

在互联网中,信息的重复是在所难免的。然而,搜索引擎怎样识别重复信息的呢?怎样判断哪些网页的信息是原创的,哪些是“复制”的?又会认为哪些重复的信息是有价值的,哪些又是可以舍弃的?在这一节里您将得到这些问题的答案。

在网站中,重复信息主要包括转载内容及镜像内容两大类。搜索引擎在对页面进行分析的时候,必须具备识别重复信息的能力。因为,大量的重复信息不但占用巨大的服务器硬盘空间,而且还会增加用户寻找信息的时间,降低用户体验。但这并不意味着所有重复信息都是没价值的,搜索引擎认为转载内容不如原创内容重要,赋予原创性内容页面更高的权重,

而镜像内容则几乎忽略。

(1)转载页面

转载页面是指那些与原创页面正文内容相同或相近的页面。然而,搜索引擎如何识别转载页面呢?首先,它把网页正文内容分成N个区域并进行比较,如果其中有M个区域(M是搜索引擎指定的一个阀值)是相同或者相似的,则认为这些页面互为转载页面。

如下图 2-5所示,“页面1”与“页面2”是不同网站上的两个页面。其中,框中的“A”,“B”分别是两个不同页面上的正文内容。为了识别这两个页面是否互为转载页面,搜索引擎先把这两个页面的正文内容分成4个区域进行比较。假设这4个区域中有3个是完全相同或者相似的,那么就认为这两个页面是互为转载的。

图 2-5 页面正文内容对比

在确定页面的互为转载关系后。接下来,搜索引擎再结合页面的最后修改时间(搜索引擎在抓取页面时已经储存的附加信息,详细请查看“页面储存”一节)、页面权重等因素判断原创页面与转载页面。

(2)镜像页面

内容完全相同的页面互为镜像页面。要判断页面是否互为镜像页面,搜索引擎首先把这些页面分成N个区域进行比较,如果这N个区域的内容都完全一样,则认为这些页面互为镜像页面。然后,再综合多项因素(例如:页面权重值、页面最后修改时间等)来识别哪个是源页面,哪个是镜像页面。

如下图 2-6所示,“页面1”及“页面2”是不同网站上的两个页面。把这两个页面分成三个区域进行比较(即“A-1,A-2,A-3”与“B-1,B-2,B-3”),如果这三个区域内容完全一样,则认为这两个网页互为镜像页面。

____________

注①: 正文内容:搜索引擎通过算法消除页面中的辅助信息(如导航栏、图片等)后,就得到页面的正文内容。

图 2-6 页面对比

(3)镜像网站

狭义上的镜像网站是指内容完全相同的网站,形成镜像网站主要有两种情况:第一种就是多个域名或IP指向同一服务器的同一个物理目录;另外一种就是,整个网站内容被复制到使用不同域名或者不同IP的服务器上。

为了识别站点间是否互为镜像网站,搜索引擎首先判断这些网站的首页以及与首页直接链接的页面是否互为镜像页面。如果是,则互为镜像网站。然后,再综合多项因素(例如:网站权重值、建立时间等)来识别哪个是源网站,哪个是镜像网站。这样,以后抓取页面的时候就集中在源网站中进行,这也是为什么搜索引擎对于镜像网站只收录极少页面,甚至是不收录的原因。

5.页面维护方式

由于搜索引擎不可能一次性抓取到网站中所有的页面,而且网站中页面的数量也会不断地变化,内容也在不断地更新。因此,搜索引擎还需要对已经抓取的页面进行维护、更新,以便能及时获取页面中最新的信息及抓取更多的新页面。常见页面维护方式包括:“定期抓取”、“增量抓取”及“分类定位抓取”。

(1)定期抓取

定期抓取也称为周期性抓取,即搜索引擎周期性地对网站中已经收录的页面进行全面更新。更新的时候,把抓取到的新页面替换原有的旧页面、删除不存在的页面、并储存新发现的页面。周期性更新针对的是全部已收录的页面,因此更新周期会比较长。例如:Google一般是30-60天才会对已收录的页面进行更新。

定期抓取算法的实现相对简单。由于每次更新涉及到网站中所有已经收录的页面,因此页面权重的再分配也是同步进行的。适用于维护页面比较少,内容更新缓慢的网站,例如:普通的企业网站。但是,由于更新周期十分漫长,这就导致不能及时向用户反映更新其间页

面的变化情况。例如:某个页面的内容更新以后,至少需要30-60天才能在搜索引擎上有所体现。

(2)增量抓取

增量抓取是通过对已抓取的页面进行定时监控,实现对页面的更新及维护。但是,对网站中的每个页面都进行定时监控的做法是不现实的。基于重要页面携带重要内容的思想以及

①80/20法则,搜索引擎只需对网站中一部分重要页面进行定时的监控,即可获取网站中相

对重要的信息。

因此,增量抓取只会针对网站中某些重要的页面,而非所有已经收录的页面,这也是为什么搜索引擎对重要页面的更新周期会更短的原因。例如:内容经常更新的页面,搜索引擎也会经常对其进行更新,从而可以及时发现新内容、新链接或者删除不存在的信息。

由于增量抓取是在原有页面的基础上进行的,因此会大大缩减搜索引擎的抓取时间,而且还可以及时向用户展示页面中最新的内容。

(3)分类定位

与增量抓取由页面重要性决定不同,分类定位抓取是指根据页面的类别或性质而制定相应更新周期的页面监控方式。例如:对于“新闻资讯”与“资源下载”这两类页面,新闻资讯类页面的更新周期可以精确到每分钟,而下载类页面更新周期就可以定为一天或更长。

分类定位抓取对不同类别的页面进行分开处理,这样就可以节省大量的抓取时间,并大大提高页面内容的实时性,也增强页面抓取的灵活性。但是,按照类别而制定页面更新周期的方式比较笼统,很难跟踪页面的更新情况。因为,即使是相同类别的页面,在不同的网站上内容的更新周期也会存在很大的差别。例如:新闻类页面,在大型门户网站中内容的更新速度就会比其他小型网站快得多。所以,还需要结合其他的方式对页面进行监控、更新,例如:增量抓取等。

实际上,搜索引擎对网站中页面的维护也是结合多种方式进行,相当于间接为每一个页面选择最合适的维护方式。这样,既可以减少搜索引擎的负担,又可以为用户提供及时的信息。

例如:在一个网站中,会存在多种不同性质的页面,常见的包括:“首页”、“论坛页面”、“内容页面”等。对于更新比较频繁的页面(例如:首页),可以使用“增量抓取”方式对其进行监控,这样就可以对网站中相对重要的页面进行及时更新;而对于实时性非常高的论坛页面,则可以采用“分类定位”的抓取方式;而为了防止遗漏网站中的某些页面,还需要采用“定期抓取”的方式。

_______________

注①:80/20法则是意大利著名经济学家维尔弗雷德•帕累托发现的,其核心思想是20%的活动能产生满足80%需求的物质。例如:20%的产品或者服务创造了80%的利润,20%的内容满足80%用户的需求。

6.页面储存

在上面的内容里,我们已经知道了搜索引擎对页面的抓取及维护方式。接着,我们还要了解一下搜索引擎在抓取页面后,需要储存哪些信息才能满足接下来的工作对数据的需求。

页面是搜索引擎对网站进行信息处理的基础,搜索引擎大部分工作都是在页面上开展的。但是,仅仅依靠页面中的内容并不能满足搜索引擎对数据处理的需求。搜索引擎能否在抓取页面的过程中获取到更多、更有价值的信息会直接影响搜索引擎的工作效率及排序结果的质量。所以,搜索引擎在抓取页面时,除了储存原始页面外,还会附加一系列的信息(例如:文件类型、文件大小、最后修改时间、URL、IP地址、抓取时间等),再把这些信息作为开展某项工作的依据,例如:如果某个文件过大,就可能会被搜索引擎放弃索引;而最后修改时间则暗示了页面更新的日期等。

2.3.2 页面分析

页面抓取只是搜索引擎工作的一个基础环节,页面抓取回来后并不代表搜索引擎马上就可以向终端用户提供查询服务。因为,用户在使用搜索引擎进行查询的时候,使用的是一个词或者短语,而到目前为止,搜索引擎仅能提供整个原始页面,即不能返回与用户查询条件相匹配的信息。因此,搜索引擎还需要对原始页面进行一系列的分析、处理,以迎合用户信息查询的习惯。

如下图 2-7所示,搜索引擎首先对储存的原始页面建立索引,再过滤原始网页的标签信息,从中提取出网页中的正文信息;然后,对正文信息进行切词,并建立关键字索引,得到了页面与关键字间的对应关系;最后对所有关键字进行重组,从而建立关键字与页面之间的对应关系。

图 2-7 网页分析、处理流程

1.网页索引

为了提高页面检索的效率,搜索引擎需要对抓取回来的原始页面建立索引,由于URL就是页面的入口地址,为原始页面建立索引实际上就是为页面的URL建立索引,这样就可以实现根据URL快速定位到对应的页面。

2.网页分析

网页分析是整个网页处理中最重要的环节,包括了“网页正文信息的提取”(即标签信息过滤)、“切词”、“建立关键字索引列表”及“关键字重组”这几个重要的步骤。结果形成了一个关键字对应多个原始页面的关系,即形成了与用户查询习惯相符合的信息邹形。

(1)正文信息提取

网页正文信息的提取实际上就是对网页中非正文信息的过滤。其中,最为重要的就是对网页中标签信息的过滤(例如:HTML标签、JS标签,PHP标签)。经过标签过滤以后,搜索引擎就可以得到网页的正文信息。

(2)切词/分词

经过对原始页面提取正文信息后,搜索引擎就可以得到页面的实质内容。而为了得到与用户查询相关的数据,搜索引擎还需要对页面中的内容进行切分(也就是我们常说的“切词”或者“分词”),从而形成与用户查询条件相匹配的以关键字为单位的信息列表。

每个搜索引擎的切词系统都会存在或多或少的差别,切词系统的优劣主要取决于开发者对语言的理解能力。特别是在中文语言环境里,切词算法直接影响网页内容经过切词处理后会产生什么样的关键字,而这些关键字是否与用户的搜索习惯一致。因而,切词的结果直接决定搜索引擎能否提供与用户查询条件相匹配的信息。

在中文环境里,常见的分词方法包括“字符串匹配分词”及“统计分词”这两种,下面向大家简单介绍一下这两种中文分词算法。

1)字符串匹配分词

字符串匹配分词是基于一个足够大、足够权威的“词典”上进行。如果页面上的词与“词典”中的词匹配上了,则为命中。这样就可以得到一个词或者短语。

2)统计分词

统计分词是根据相邻的两个(或者多个)字出现的概率判断这两个(或者多个)字组合后是否会形成一个词,统计分词也常常会结合“词典”进行匹配,常用于识别一些新词汇。例如:“博客”等一些在传统中文语言中是不存在的词汇。

(3)关键字索引

网页正文信息在经过切词系统处理后,形成了关键字列表。关键字列表中的每条记录都包括了该关键字所在的关键字编号、网页的编号、关键字出现次数以及关键字在文档中的位置等信息,如下表 2-1所示。

表 2-1 关键字列表

例如:“记录1”中的关键字“K1”在页面中出现了三次,对应页面中的“A1”,“A5”,“A7”区域,如下图 2-8

所示。

图 2-8 关键字“K1”在页面中的分布示意图

为了提高对关键字的检索效率,搜索引擎还会为关键字列表建立索引。这样,经过对网页及关键字列表都建立索引后,就可以实现从一个网页快速定位到某一关键字。

例如:“网页0”经过信息过滤后得到的内容是“中国广东省深圳市”;然后,对内容进行切词后产生关键字“中国”、“广东省”、“深圳市”,并对关键字建立索引。这样,根据“网页0”,搜索引擎就可以快速定位到关键字“中国”、“广东省”或“深圳市”上,如下图 2-9所示。

图 2-9 页面与关键字间的对应关系

然而,用户是通过关键字去寻找那些承载相应信息的页面的。所以,搜索引擎还需要对已有信息进行相应的处理,建立关键字与页面URL间的对应关系表,从而实现根据关键字快速定位到多个页面的功能,这就是下一节所说的“关键字重组”问题。

(4)关键字重组

为了迎合用户寻找信息的习惯,即以关键字为条件寻找与关键字相关的页面。因此,搜

索引擎需要建立以关键字为主索引的一个关键字对应多个页面的关系表,即关键字反向索引表。而建立关键字反向索引表最重要的任务就是对所有页面中的关键字列表进行重组。

经过之前对关键字建立索引后,已经产生了网页与关键字的一对多的对应关系。接下来,

搜索引擎把所有页面中的关键字进行重组,并建立关键字索引,从而形成一个不重复的关键字列表集合,即关键字列表中,每个关键字都是唯一的。这样,通过某一个特定的关键字就可以找到一个或者多个网页。从而实现根据关键字返回相应页面的功能,如下图 2-10所示。

图 2-10 关键字与页面间的对应关系

经过对原始页面进行分析、处理后,搜索引擎已经可以根据用户的查询条件返回相应的页面列表。但是,简单地向用户返回这个页面列表,往往不能满足用户的需要。所以,搜索引擎还会根据页面与用户查询条件相关性的高低再对这个列表进行重新排列,然后把这个处理后的列表返回给用户,这就是下一节将要向大家介绍搜索引擎对页面排序的问题。

2.3.3 页面排序

用户向搜索引擎提交关键字查询信息以后,搜索引擎就在搜索结果页面返回与该关键字相关的页面列表,这些页面按照与关键字的接近程度由上至下进行排列。而决定页面排列次序的因素非常多,在本书里将向读者介绍几种最常见,也是最重要的因素,包括“页面相关性”、“链接权重”及“用户行为”。

1.页面相关性

页面相关性是指页面内容与用户所查询的关键字在意义上的接近程度,主要由“关键字匹配度”、“关键字密度”、“关键字分布”及“关键字所使用的标签”等决定。

(1)关键字匹配度

关键字匹配度是指“页面P”中的内容与用户所查询的“关键字K”之间的匹配程度,主要由两个因素决定:

1. “页面P”中是否存在与查询条件“关键字K”相匹配的内容,即页面内容中是否包含“关键字K”。

2. “关键字K”在“页面P”中出现了多少次,即“页面P”中有多少个“关键字K”。

为了计算关键字匹配度,搜索引擎为每个页面分配一个关键字匹配值,该值由关键字在_______________

注①:关键字重组即把所有页面中的关键字组成一个集合。

页面中出现的次数决定。假设某个关键字在页面中出现一次,关键字匹配值为10;那么,如果某一关键字在页面中出现10次,则关键字匹配值=10*10。

如果这种假设成立,则某关键字在页面中出现的次数越多(即词频越高),页面的相关性就越高,这样搜索结果就极容易被网站所有者操控。例如:一个网站想要提高页面的相关性,只需在页面中添加足够多的关键字即可。

因此,关键字词频决定页面相关性的做法是极不合理的,还需要结合“关键字密度”、“关键字分布”及“关键字所使用的权重标签”等多方面来进行制约。

(2)关键字密度

为了有效防止网站所有者恶意操控搜索结果,搜索引擎根据“关键字词频”与“网页总词汇量”的比例(即关键字密度值)来衡量页面中某关键字的词频是否合理。

假设页面中某关键字的密度在50%时,这个页面的关键字密度值为20。那么,在内容是“camcorder battery”的页面中,camcorder的关键字密度是50%,则针对关键字“camcorder”,这个页面的关键字密度值为20。

(3)关键字分布

关键字分布,即关键字在页面中出现的位置,关键字在页面中不同的位置上出现会对页面的相关性带来一定的影响。搜索引擎通过记录关键字在页面中出现的位置来计算页面的关键字分布值,从而得到关键字分布与页面相关性之间的关系。

假设关键字在页面的顶部出现时,关键字分布值为50;而在底部出现时,关键字分布值为10;则关键字“K1”同时出现在“页面A”的顶部与底部时,该页面的关键字分布值就是60。

(4)标签影响

在网页中,网页制作者利用不同的HTML标签使页面中相关的内容实现不同的视觉效果(例如:字体的样式、字号、颜色等),灵活地运用各种HTML标签还有助于提高页面相关性。

我们在阅读文章的时候经常会遇到文章中某些内容的表现形式与周围的内容是存在明显区别的,例如:某些内容的字体颜色与周围的内容会形成强烈的反差,或者字号大小不一致等。

这就说明了文章的作者是刻意去突出这部分内容,通常是因为这部分内容比较重要。同样,在对网站进行优化的时候,我们也可以使用同样的方法去突出页面中某一些重要的内容,例如:利用不同的HTML标签去标注页面中需要突出的内容。这样,搜索引擎在分析页面的时候就会根据HTML标签识别页面中内容的样式,从而判断页面中哪些内容更加重要。

在页面权重分配里,按照标签的作用,可以把HTML标签分为“权重标签”与“非权重标签”两大类。权重标签是指会影响页面权重的标签,常见的权重标签包括,

等;

而非权重标签常见的有,等。

假设表2-2中是搜索引擎对某些标签权重值的定义,则对于一个内容是“

搜索引擎优化

”的页面,针对“搜索引擎优化”这个关键字,标签权重值=标签权重值+

标签权重值,即60。

表2-2 样式标签与权重值的对应关系

通过对“关键字匹配度”、“关键字密度”、“关键字分布”及“权重标签”进行说明后,我们推算出页面相关性的计算公式如下:

W(relevance)=W(match)+W(density)+W(position)+W(tag)

式中,Weight(relevance)是页面相关性;W(match) 是关键字匹配值;W(density) 是关键字密度值;W(position) 是关键字分布值;W(tag) 是标签权重值。

例如:某页面的内容如下:“搜索引擎优化

搜索引擎

„„”,

则针对“搜索引擎优化”这个关键字来说,由于只出现一次,则关键字匹配值W(match)=10;关键字密度是50%,则关键字密度值W(density)=20;关键字出现在页面的顶部,则关键字分布值W(position)=50;而权重标签在突出关键字“搜索引擎优化”时出现了一次,则标签权重值W(tag)=10,即:W(relevance)=10+20+50+10。

搜索引擎利用“关键字匹配度”、“关键字密度”、“关键字分布”及“权重标签”这四大要素相互制约的作用,完善页面相关性的计算。但是,本节里所介绍的都是一些网站内部可操控因素。为了提高排序中信息的质量,搜索引擎还引入了一些外部不可操控的因素对页面相关性进行综合评估,例如:“外部链接”与“用户行为”等。

2.链接权重

链接主要分内部链接及外部链接两种,是网页制作或者编缉者在对页面内容进行规划或者编缉时加入到页面中的,加入的理由可能是该链接所指向的页面非常重要或者是大部分用户所需要的。因此,某一页面得到的链接越多,从一定程度上反映了该页面越重要,链接权重值就越高。

如果把整个互联网看作是一个有向图,超链接为有向边,网页为节点。那么,绝大部分网页都会有一个“入度”与“出度”,根据网页的“入度”数量及提供“入度”的页面权重值来计算页面链接的权重是一个非常好的想法。

假设下图 2-11是页面之间的关系图,其中“V1”,“V2”,“V3” 为网页;而箭头方向则代表页面贡献链接或从别的页面中得到的链接。以网页V2为例,V2对V1,V3各贡献了一个链接,而得到了V2的链接。

图 2-11 页面关系图

(1)内部链接

内部链接是指网站内部页面之间的链接关系,体现了网站内部对某个页面的认可程度。理论上,页面获得的链接质量越高、数量越多,其重要性也相对越大。

(2)外部链接

外部链接指本站以外的页面之间的链接关系。由于外部链接的不可操控性,外部链接在整个链接关系中占着更大的权重比例,是决定整个页面权重最重要的因素。

(3)默认权重分配

网站页面数量是在不断变化的,但由于时间的关系,新增加的页面即使内容质量很高,得到的链接数量也是有限的,因此链接权重值通常会很低。在这种情况下,搜索引擎就需要对这些新页面的链接权重值按照相应的方案进行补偿,使得新页面能够得到更合理的链接权重值。

在链接权重值补偿方面,搜索引擎把页面被抓取的日期作为一个参考因素。它认为页面在单位时间内获得链接的数量越多、质量越高,则该页面的质量也相对更高。

例如:页面A得到30个链接,而页面B也得到30个链接(假设这些链接的质量是相等)。但是,页面A花了100天时间,而页面B只花了1天时间。这从一定程度上反映页面B比页面A更重要。因此,就需要给页面B进行一定的补偿,使得页面B所得链接权重值高于页面A。

3.用户行为

搜索引擎在完成页面基本权重计算以后,就可以向用户展示初步的排序结果。但这个排序结果不一定能让大部的用户满意,因此还要结合其他因素对该排序结果进行改进。例如:统计每条搜索结果的点击次数来推测用户对搜索结果的偏好。

用户对搜索结果的点击行为是衡量页面相关性的因素之一,是完善排序结果,提高排序结果质量的重要补充,属于外部不可操控因素(详细请参考本章的“关键字查询”一节)。

综上所述,搜索引擎通过计算页面在“页面相关性”、“链接权重值”及“用户行为”等方面的得分,得到页面的总权重值;然后,再按照页面的总权重值从高到低进行排序并把这

个经过排序的列表返回给用户。

即:W(page)= W(relevance)+ W(link)+ W(user)

式中,W(page)是页面权重值;W (relevance) 是页面相关性值;W (link) 是链接权重值;W (user) 是用户行为得分。

2.3.4 关键字查询

在计算完所有页面的权重以后,搜索引擎就可以向用户提供信息查询服务。搜索引擎查询功能的实现非常复杂,用户对返回结果的时间要求也非常高(通常是秒级),要在这么短的时间内完成这么复杂的计算是不现实的。所以,搜索引擎需要通过一套高效的机制处理来自用户的查询。这主要应该包括:

1. 在用户发出查询请求前就完成被查询关键字的反向索引、相关页面权重计算等工作;

2. 为那些查询最频繁的关键字对应的页面排序列表建立缓存机制。

其中,关键字重组、页面权重分配等工作已经在前面的内容里进行了详细的说明。接下来,就是向读者介绍搜索引擎如何建立信息查询的缓存机制。

1.查询流程

首先,向大家介绍搜索引擎处理用户查询的流程,如下图 2-12所示。

1. 先对用户提供的查询条件进行切词,并删除查询条件中没有意义的字或词,例如:“的”、“得”等停用词;

2. 再以切词结果作为条件在“关键字反向索引列表”中进行匹配;

3. 如果存在匹配结果,则把所有与关键字相匹配的页面的URL组成一个列表;

4. 最后,把匹配的页面按照权重值从高到低进行排序,并返回给用户。

(注:其中3,4两个步骤在用户查询之前已经完成。)

例如:用户查询“手机图片”,搜索引擎对其进行切词后得到的查询条件是“手机+图片”;再把“手机+图片”在“关键字反向索引列表”中进行匹配;结果得到了“A”,“B”,“C”这三个相关页面;再计算三个页面的权重值,如果这三个页面的权重值关系是“B>C>A”,则这三个页面在搜索结果列表中的排列顺序就是“B,C,A”。

2.用户行为

用户在搜索引擎中的行为主要包括“搜索”及“点击”,搜索是用户获取信息的过程,点击是用户得到需要信息后的表现。

用户的“搜索”及“点击”行为中蕴含着非常丰富、重要的信息。例如:在用户搜索行为中包含了“提交的关键字”、“提交时间”、“用户IP地址”等信息;而在点击行为中则包含了“每个结果的点击次数”等信息。

搜索引擎通过对用户行为的分析可以进一步发掘用户的需求,提高搜索结果的精准度。例如:从用户的搜索行为中,搜索引擎还可以发现新词汇;而从用户对搜索结果的点击行为中,可以分析出用户对每个搜索结果的偏好等。

(1)搜索

搜索是用户获取信息的途径,是搜索引擎最基本的功能。搜索引擎可以在用户的搜索行为中得知某一关键字被搜索的次数,通过对关键字被搜索的次数的分析可以发现新词汇及进一步了解用户的搜索习惯。

由于语言是不断发展的,随着时间的推移会产生更多的新词汇。特别是在互联网环境中,某个热点的事件也有可能成为一个新的词语,例如:“艳照门”等。

对搜索引擎而言,新生词汇主要是指那些目前搜索引擎词典系统里不存在,但是又被频繁搜索的关键字。如果某一关键字在搜索引擎词典系统里不存在,则切词时就不会产生该关键字,这样用户在查询该关键字时就返回不了相关的信息,也就不能满足用户的需求。因此,搜索引擎对新词汇的学习能力从一定程度上反映了搜索引擎对语言的理解能力,是衡量搜索引擎好坏的重要指标之一。

结合用户搜索习惯与页面内容去发掘新关键字是搜索引擎学习新词汇的主要方式之一,如下图 2-13所示。

1. 对用户查询日志进行分析,筛选出日志中查询相对频繁的词汇;

2. 如果某个查询相对频繁的关键字不存在于词典系统中,就把这个关键字与部分页面的内容进行匹配;如果命中,则表明该关键字是存在的,加入词典系统;否则,对下一个查询频繁词语进行匹配。

(2)点击

点击是用户找到所需信息后的表现,反映了用户对信息的关注。因此,用户对链接的点击也是衡量页面相关性的因素之一,是衡量页面相关性的一个重要补充。

在同一个关键字的搜索结果列表中,不同的用户会有不同的选择。但是,如果某一个结果的点击次数是明显多于其他结果的,则从一定程度上反映了该页面是大部分用户所需要的(特别是当该链接处在比较靠后的位置时)。

众所周知,搜索结果中越靠前的链接得到点击的机率就会越高。按照这样的逻辑,那么在排在第二、第三,甚至第四的页面被点击的机会就会变得越来越小,但这并不代表这些页面就不比排在前面的页面重要,只是在目前的排序结果中,用户还没机会发现它们而已。所以,对于不同位置上链接的点击,搜索引擎会对其权重值进行相应的补偿。假设排在第一位的结果每被点击一次,会产生1分的补偿,而排名在100名的结果被点击一次,则产生10分甚至更多的补偿。

3.缓存机制

为了能在极短的时间内响应用户的查询请求,搜索引擎除了在用户提交查询信息前就生成关键字对应的页面排序列表以外,还需要为那些查询最频繁的关键字对应的页面排序列表建立缓存机制。

经过统计,搜索引擎发现关键字查询的集中现象非常明显。查询次数最多的前20%的关键字大约占了总查询次数的80%(就这是著名的80/20法则)。因此,只要我们对这20%左右的关键字建立缓存就可以满足80%的查询需求。

由于用户查询时返回的信息主要是与关键字相关的页面排序列表,因此关键字缓存机制的建立主要是针对与关键字相关的页面排序列表。在对常用关键字的页面排序列表建立缓存后,搜索引擎就可以把缓存中的信息返回给用户,这样速度就会非常快,也就能满足绝大部分用户的需求。

由于互联网中的信息是时刻都在增长的,如果搜索引擎每次都向用户返回同样的信息。不但用户得不到更高质量的信息,其他网站也不能向用户展示最新的高质量信息,从而造成信息滞后。因此,搜索引擎还会对缓存中的内容进行定期更新。

2.4 搜索引擎介绍

由于搜索引擎优化其中一个主要任务是提高网站的搜索引擎友好性,因此学习搜索引擎优化还需要熟悉各主要搜索引擎的习性。下面将向读者介绍两大中文搜索引擎:“谷歌”及“百度”。

2.4.1 Google

Google是基于全文索引的搜索引擎,起源于斯坦福大学BackRub项目,由Larry Page 及 Sergey Brin 主要负责。到1998年,BackRub更名Google,并成立公司。发展至今,

Google搜索涉及全球多种语言,是目前最有影响力的搜索引擎,如下图2-14所示。

图 2-14 Google中文首页

Google是目前世界上最大的搜索引擎,先进的算法被争相模仿。因此,加深对Google的了解可以帮助我们更好地认识其他搜索引擎。

在搜索引擎优化方面,我认为Google与其他搜索引擎主要存在以下明显的区别:

1. Google十分重视链接关系,对于链接的质量、数量及相关性方面的分析技术在业界更是遥遥领先。尽管百度、雅虎也非常重视链接关系,但对于链接的质量及相关性方面的分析则远不如Google。例如:百度单纯的以链接数量及质量衡量页面的重要性,而忽略链接关系中网站间的相关性。

2. 在切词算法上,Google与其他中文搜索引擎也存在一定的区别。

3. 在对待新网站方面,Google非常严格,新网站只有同时满足多个条件时,才能正常参与排名竞争,这就是所谓的“沙盒效应”现象。这样做可以有效避免垃圾网站,但同时也给一些新的优秀的网站诸多制肘,很难通过Google向用户展示其极具价值的信息。

4. 在对垃圾信息处理方面。尽管Google目前还是以人工为主,但与其他搜索引擎相比,Google Spam检测算法已经比较成熟。对于一些常见的作弊手段,Google可以轻易识别。例如:伪装(Cloaking)、门页(Doorway Pages)、堆砌关键字、隐藏文字、垃圾链接等。

2.4.2 百度

图 2-15 百度首页

同是中文搜索引擎的领先者,也许百度的技术不如Google。但是,百度在中国大陆的市场占有率方面要比Google大得多。因此,加深对百度的认识也是非常必要的。

1. 如果把决定页面权重的因素分“内部因素”与“外部因素”两大类。在百度中,“内部因素”与“外部因素”在影响页面权重方面的差距比较小。

2. 百度对新网站比较宽松,这就造成了搜索结果中充斥着大量的垃圾信息,严重影响了用户体验。

3. 百度也非常重视链接关系,对于被高质量页面链接的页面会赋予极高的权重,但却忽略了链接关系中网站间的主题相关性。

4. 百度对搜索结果的人工干预非常强。

总结

了解搜索引擎的工作原理是开展搜索引擎优化工作的基础。只要充分掌握搜索引擎工作的流程及原理,我们才能更好地规划网站,提高网站的搜索引擎友好性。

第2章:搜索引擎工作原理

本章主要介绍搜索引擎的工作流程及原理,覆盖了从搜索引擎对页面的收录、分析、排序到关键字查询的全过程。此外,还讲述了搜索引擎各主要工作与搜索引擎优化之间的对应关系,为学习搜索引擎优化提供了理论根据。

2.1 搜索引擎发展历史

随着互联网信息的爆炸性增长,用户想要在互联网中寻找到所需信息就如同大海捞针,这时为了满足大众信息检索需求的专业搜索引擎应运而生。

现实意义上的搜索引擎是1990年由蒙特利尔大学学生Alan Emtage开发的Archie。虽然当时World Wide Web还未出现,但网络中文件传输已经相当频繁,而且由于大量的文件散布在各个不同的FTP服务器中,形成了巨量的信息源。Alan Archie依靠脚本程序搜索网络上的文件,再对其进行索引,供使用者查询。由于Archie深受用户欢迎,受其启发,美国内华达System Computing Services大学于1993年开发了另一个类似的搜索工具,不过该搜索工具除了能索引文件外,而且还能检索网页。

当时,“机器人”一词十分流行,“机器人”是指快速不间断地执行某项任务的程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎“机器人”程序也被称为“蜘蛛”程序。世界上第一个监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用于统计互联网上服务器的数量,后来发展成为能够检索网站域名。与Wanderer相对应,Martin Koster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立自己的链接索引,类似雅虎分类目录。

随着互联网的快速发展,检索新出现的网页变得越来越困难,因此,在Matthew Gray的Wanderer基础上,将传统的“蜘蛛”程序作了改进。其设想是,既然所有网页都可能存在指向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,其中以JumpStation、The World Wide Web Worm(Goto的前身,也就是今天Overture,已被雅虎收购),和Repository-Based Software Engineering (RBSE) spider最负盛名。然而JumpStation和WWW Worm只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。而RBSE是第一个在搜索结果排列中引入关键字串匹配程度概念的搜索引擎。最早现代意义上的搜索引擎出现于1994年7月。当时Michael Mauldin将John Leavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos。同年4月,斯坦福(Stanford)大学的两名博士生,David Filo和美籍华人杨致远(Gerry Yang)共同创办了超级目录索引雅虎,并成功地使搜索引擎的概念深入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也今非昔比。例如:Google号称数据库中存放的网页已达40亿!

2.2 搜索引擎分类

搜索引擎按照工作方式可以分为三种,分别是“全文搜索引擎”、“目录索引类搜索引擎”及“元搜索引擎”。

2.2.1 全文搜索引擎

全文搜索引擎是名副其实的搜索引擎,国外具代表性的全文搜索引擎有Google,Yahoo!;而国内比较著名的全文搜索引擎就有百度等。它们都是通过从互联网上提取各网站的信息(以网页文字为主)而建立数据库,再从这个数据库中检索与用户查询条件相匹配的相关记录,最后把这些记录按照一定的排列顺序返回给用户。

从搜索结果来源的角度,全文搜索引擎拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自行建立网页数据库,搜索结果就直接从自身的数据库中调用。

2.2.2 目录搜索引擎

目录搜索引擎虽然具备搜索功能,但严格地说并不是搜索引擎,仅仅是按照类别向用户展示相关网站列表的普通网站而已。目录搜索引擎中最具代表性的要数雅虎了(雅虎通过一轮番的并购及研发,已经挤身顶尖全文搜索引擎行列),其他还有ODP (即DMOZ)等。

2.2.3 元搜索引擎

元搜索引擎在接受用户查询请求的时候,会同时在其他多个搜索引擎上进行搜索,并将结果返回给用户,著名的元搜索引擎有Dogpile、Vivisimo等。在搜索结果排列方面,有的直接按照来源排列搜索结果,例如:Dogpile;而有的则是按照自定的规则将结果重新排列组合后再返回给用户,例如:Vivisimo。

除上述三大类搜索引擎以外,还有以下几种非主流形式的搜索引擎:

1. 集合式搜索引擎:这一类搜索引擎与元搜索引擎类似,但区别在于不是同时调用多个搜索引擎进行搜索,而只是让用户从提供的搜索引擎中进行选择,例如:HotBot在2002年底推出的搜索引擎。

2. 门户搜索引擎:虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,它的搜索结果完全来自其他搜索引擎,例如:国内的“新浪”及“搜搜”的搜索功能就是由Google提供的。

3. 免费链接列表(Free For All Links,简称FFA):也就是常见的链接交换系统,这类网站一般只简单地排列出网站的链接条目,一小部分还会有简单的分类目录,不过规模比起Yahoo这样的人工分类目录要小得多。

2.3 搜索引擎工作原理

搜索引擎优化的主要任务之一就是提高网站的搜索引擎友好性,因此,搜索引擎优化的每一个环节都会与搜索引擎工作流程存在必然的联系,研究搜索引擎优化实际上就是对搜索引擎工作过程进行逆向推理。因此,学习搜索引擎优化应该从了解搜索引擎的工作原理开始。

搜索引擎的主要工作包括:“页面收录”、“页面分析”、“页面排序”及“关键字查询”。

1. 页面收录

页面收录就是指搜索引擎通过蜘蛛程序在互联网上抓取页面并进行储存的过程,为搜索引擎开展各项工作提供了数据支持。

2.页面分析

页面分析首先是对原始页面建立索引,实现对页面的快速定位;然后,提取页面的正文信息,并对正文信息进行切词以及为这些词(即:关键字)建立索引,从而得到页面与关键字的之间对应关系;最后,对所有关键字进行重组,并建立关键字与网页间对应关系的反向索引列表,从而实现根据关键字快速定位至相应的网页。

3.页面排序

搜索引擎结合页面的内外部因素计算出页面与某个关键字的相关程度,从而得到与该关键字相关的页面排序列表。

4.关键字查询

搜索引擎接收来自用户的查询请求,并对查询信息进行切词及匹配以后,再向用户返回相应的页面排序列表。

在本章接下来的内容里将向读者介绍搜索引擎各个主要工作的流程、原理及作用,以及在对网站进行优化时应该如何应对。

2.3.1 搜索引擎对页面的收录

搜索引擎收录页面实际上就是在互联网上进行数据采集,这是搜索引擎最基础的工作。搜索引擎的数据采集能力直接决定搜索引擎可提供的信息量及对互联网覆盖的范围,从而影响搜索引擎的质量。因此,搜索引擎总是想方设法地提高它的数据采集能力。

在本节里,首先会介绍搜索引擎收录页面的流程及方式,再介绍搜索引擎对已收录页面的储存及维护方式。

1.页面收录流程

在互联网中,URL是每一个页面的入口地址,搜索引擎蜘蛛程序就是通过URL抓取到页面的。搜索引擎蜘蛛程序从URL列表出发,通过URL抓取并储存原始页面;同时,提取原始页面中的URL资源并加入到URL列表中;如此不断地循环就可以从互联网中获取到足够多的页面,如下图 2-1所示。

__________________

注①:搜索引擎利用数据采集程序在互联网上抓取数据,我们称这个数据采集程序为蜘蛛程序(spider)或者机器人程序(robot)。

图 2-1 搜索引擎抓取页面简单流程

URL是页面的入口,而域名则是一个网站的入口。搜索引擎蜘蛛程序通过域名进入网站,从而展开对网站页面的抓取。换而言之,搜索引擎要在互联网上抓取到页面的首要任务就是建立一个足够大的域名列表,再通过域名进入相应的网站,从而抓取这个网站中的页面。

而对于网站来说,如果想要被搜索引擎收录,首要的条件就是加入搜索引擎的域名列表。下面向大家介绍两种常用的加入搜索引擎域名列表的方法:

第一,利用搜索引擎提供的网站登录入口,向搜索引擎提交我们网站的域名,例如:Google的网站登录地址:“http://www.google.com/intl/zh-CN/add_url.html”。对于提交的域名列表,搜索引擎只会定期进行更新。因此,这种做法比较被动,从域名提交到网站被收录花费的时间也比较长。

第二,通过与外部网站建立链接关系,使搜索引擎可以通过外部网站发现我们的网站,从而实现对网站的收录。这种做法主动权掌握在我们自己的手里(只要我们拥有足够多高质量的链接即可),而且收录速度也比向搜索引擎主动提交要快得多。视乎外部链接的数量、质量及相关性,一般情况下,2-7天左右就会被搜索引擎收录。

2.页面收录 ①

通过上面的介绍,相信读者们已经掌握了加快网站被搜索引擎收录的方法。然而,怎样才能提高网站中页面被收录的数量呢?这就要从了解搜索引擎收录页面的工作原理开始。

如果把网站页面组成的集合看作是一个有向图,从指定的页面出发,沿着页面中的链接,按照某种特定的策略对网站中的页面进行遍历。不停地从URL列表中移出已经访问过的URL,并储存原始页面,同时提取原始页面中的URL信息;再将URL分为域名及内部URL两大类,同时判断URL是否被访问过,将未被访问过的URL加入URL列表中。递归地扫描URL列表,直至耗尽所有URL资源为止。经过这些工作,搜索引擎就可以建立庞大的域

______________________

① 在实际中,我们只需要提交网站的首页地址或者网站的域名,搜索引擎就会跟踪首页中的链接去抓取其他页面。

名列表、页面URL列表及储存了足够多的原始页面,如下图 2-2所示。

图 2-2 搜索引擎收录页面的工作原理

3.页面收录方式

在上面的内容里,作者已经向大家介绍了搜索引擎收录页面的流程及原理。然而,在互联网数以亿计的页面中,搜索引擎怎样才能从中抓取到更多相对重要的页面呢?这就涉及搜索引擎的页面收录方式问题。

页面收录方式是指搜索引擎抓取页面时所使用的策略,目的是为了能在互联网中筛选出更多相对重要的信息。页面收录方式的制定取决于搜索引擎对网站结构的理解,如果使用相同的抓取策略,搜索引擎在同样的时间内可以在某一网站中抓取到更多的页面资源,则会在该网站上停留更长的时间,收录的页面数自然也就更多。因此,加深对搜索引擎页面收录方式的认识,会有利于为网站建立友好的结构,提高页面被收录的数量。

常见的搜索引擎收录页面的方式主要有“广度优先”、“深度优先”及“用户提交”三种,接下来将详细介绍这三种页面收录方式及各自的优缺点。

(1)广度优先

如果把整个网站看作是一棵树,首页就是根,每个页面就是叶子。广度优先就是从树的较浅层开始抓取页面,直至抓取完同一层次上的所有页面后才进入到下一层,是一种横向的页面抓取方式。因此,在对网站进行优化的时候,我们应该把网站中相对重要的信息展示在层次较浅的页面上(例如:在首页上推荐一些热门产品或者内容)。反过来,通过“广度优先”的抓取方式,搜索引擎就可以优先抓取到网站中相对重要的页面。

我们来看一下广度优先的抓取流程:首先,搜索引擎从网站的首页出发,抓取首页上所有链接指向的页面,形成页面集合(A),并解析出集合(A)中所有页面的链接;再跟踪这些链接抓取下一层的页面,形成页面集合(B);就这样递归地从浅层页面中解析出链接,

从而抓取深层页面,直至满足了某个设定的条件后才停止抓取进程,如下图 2-3所示。

图 2-3 “广度优先”抓取流程

(2)深度优先

与“广度优先”的抓取方式恰恰相反,“深度优先”首先跟踪的是浅层页面中的某一个链接从而逐步抓取深层次页面,直至抓取完最深层次的页面后才返回浅层页面继续向深层页面抓取,是一种纵向的页面抓取方式。使用深度优先的抓取方式,搜索引擎可以抓取到网站中比较隐蔽、冷门的页面,这样才能满足更多用户的需求。

我们来看一下深度优先的抓取流程:首先,搜索引擎会抓取网站的首页,并提取首页中的链接;再沿着其中的一个链接抓取到“页面1-1”,同时提取其中的链接;接着,沿着“页面1-1”中的一个链接“A-1”抓取到“页面2-1”,同时提取其中的链接;再沿着“页面2-1”中的一个链接“B-1”继续抓取更深一层的页面。这样递归地执行,直至抓取到网站最深层的页面或者满足了某个设定的条件才转回到首页继续抓取,如下图 2-4所示。

图 2-4 “深度优先”抓取流程

(3)用户提交

为了抓取到更多的网页,搜索引擎还允许网站管理员主动提交页面。网站管理员只需把网站中页面的URL按照指定的格式制作成文件,提交给搜索引擎,搜索引擎就可以通过该文件对网站中的页面进行抓取及更新。

这种由网站管理员主动提交页面的方式大大提高了搜索引擎抓取页面的效率及质量;而对于网站本身来说,也大大提高了网站页面被收录的数量(目前Google及Yahoo!都支持这种页面抓取方式)。

为了提高抓取页面的效率及质量,搜索引擎会结合多种方式去抓取页面。例如:先使用“广度优先”的方式,把抓取范围铺得尽可能宽,获取到尽可能多的重要页面;再使用“深度优先”的方式,抓取更多隐蔽的页面;最后,结合用户提交的信息,抓取那些被遗漏的页面。

4.如何避免重复性收录

在互联网中,信息的重复是在所难免的。然而,搜索引擎怎样识别重复信息的呢?怎样判断哪些网页的信息是原创的,哪些是“复制”的?又会认为哪些重复的信息是有价值的,哪些又是可以舍弃的?在这一节里您将得到这些问题的答案。

在网站中,重复信息主要包括转载内容及镜像内容两大类。搜索引擎在对页面进行分析的时候,必须具备识别重复信息的能力。因为,大量的重复信息不但占用巨大的服务器硬盘空间,而且还会增加用户寻找信息的时间,降低用户体验。但这并不意味着所有重复信息都是没价值的,搜索引擎认为转载内容不如原创内容重要,赋予原创性内容页面更高的权重,

而镜像内容则几乎忽略。

(1)转载页面

转载页面是指那些与原创页面正文内容相同或相近的页面。然而,搜索引擎如何识别转载页面呢?首先,它把网页正文内容分成N个区域并进行比较,如果其中有M个区域(M是搜索引擎指定的一个阀值)是相同或者相似的,则认为这些页面互为转载页面。

如下图 2-5所示,“页面1”与“页面2”是不同网站上的两个页面。其中,框中的“A”,“B”分别是两个不同页面上的正文内容。为了识别这两个页面是否互为转载页面,搜索引擎先把这两个页面的正文内容分成4个区域进行比较。假设这4个区域中有3个是完全相同或者相似的,那么就认为这两个页面是互为转载的。

图 2-5 页面正文内容对比

在确定页面的互为转载关系后。接下来,搜索引擎再结合页面的最后修改时间(搜索引擎在抓取页面时已经储存的附加信息,详细请查看“页面储存”一节)、页面权重等因素判断原创页面与转载页面。

(2)镜像页面

内容完全相同的页面互为镜像页面。要判断页面是否互为镜像页面,搜索引擎首先把这些页面分成N个区域进行比较,如果这N个区域的内容都完全一样,则认为这些页面互为镜像页面。然后,再综合多项因素(例如:页面权重值、页面最后修改时间等)来识别哪个是源页面,哪个是镜像页面。

如下图 2-6所示,“页面1”及“页面2”是不同网站上的两个页面。把这两个页面分成三个区域进行比较(即“A-1,A-2,A-3”与“B-1,B-2,B-3”),如果这三个区域内容完全一样,则认为这两个网页互为镜像页面。

____________

注①: 正文内容:搜索引擎通过算法消除页面中的辅助信息(如导航栏、图片等)后,就得到页面的正文内容。

图 2-6 页面对比

(3)镜像网站

狭义上的镜像网站是指内容完全相同的网站,形成镜像网站主要有两种情况:第一种就是多个域名或IP指向同一服务器的同一个物理目录;另外一种就是,整个网站内容被复制到使用不同域名或者不同IP的服务器上。

为了识别站点间是否互为镜像网站,搜索引擎首先判断这些网站的首页以及与首页直接链接的页面是否互为镜像页面。如果是,则互为镜像网站。然后,再综合多项因素(例如:网站权重值、建立时间等)来识别哪个是源网站,哪个是镜像网站。这样,以后抓取页面的时候就集中在源网站中进行,这也是为什么搜索引擎对于镜像网站只收录极少页面,甚至是不收录的原因。

5.页面维护方式

由于搜索引擎不可能一次性抓取到网站中所有的页面,而且网站中页面的数量也会不断地变化,内容也在不断地更新。因此,搜索引擎还需要对已经抓取的页面进行维护、更新,以便能及时获取页面中最新的信息及抓取更多的新页面。常见页面维护方式包括:“定期抓取”、“增量抓取”及“分类定位抓取”。

(1)定期抓取

定期抓取也称为周期性抓取,即搜索引擎周期性地对网站中已经收录的页面进行全面更新。更新的时候,把抓取到的新页面替换原有的旧页面、删除不存在的页面、并储存新发现的页面。周期性更新针对的是全部已收录的页面,因此更新周期会比较长。例如:Google一般是30-60天才会对已收录的页面进行更新。

定期抓取算法的实现相对简单。由于每次更新涉及到网站中所有已经收录的页面,因此页面权重的再分配也是同步进行的。适用于维护页面比较少,内容更新缓慢的网站,例如:普通的企业网站。但是,由于更新周期十分漫长,这就导致不能及时向用户反映更新其间页

面的变化情况。例如:某个页面的内容更新以后,至少需要30-60天才能在搜索引擎上有所体现。

(2)增量抓取

增量抓取是通过对已抓取的页面进行定时监控,实现对页面的更新及维护。但是,对网站中的每个页面都进行定时监控的做法是不现实的。基于重要页面携带重要内容的思想以及

①80/20法则,搜索引擎只需对网站中一部分重要页面进行定时的监控,即可获取网站中相

对重要的信息。

因此,增量抓取只会针对网站中某些重要的页面,而非所有已经收录的页面,这也是为什么搜索引擎对重要页面的更新周期会更短的原因。例如:内容经常更新的页面,搜索引擎也会经常对其进行更新,从而可以及时发现新内容、新链接或者删除不存在的信息。

由于增量抓取是在原有页面的基础上进行的,因此会大大缩减搜索引擎的抓取时间,而且还可以及时向用户展示页面中最新的内容。

(3)分类定位

与增量抓取由页面重要性决定不同,分类定位抓取是指根据页面的类别或性质而制定相应更新周期的页面监控方式。例如:对于“新闻资讯”与“资源下载”这两类页面,新闻资讯类页面的更新周期可以精确到每分钟,而下载类页面更新周期就可以定为一天或更长。

分类定位抓取对不同类别的页面进行分开处理,这样就可以节省大量的抓取时间,并大大提高页面内容的实时性,也增强页面抓取的灵活性。但是,按照类别而制定页面更新周期的方式比较笼统,很难跟踪页面的更新情况。因为,即使是相同类别的页面,在不同的网站上内容的更新周期也会存在很大的差别。例如:新闻类页面,在大型门户网站中内容的更新速度就会比其他小型网站快得多。所以,还需要结合其他的方式对页面进行监控、更新,例如:增量抓取等。

实际上,搜索引擎对网站中页面的维护也是结合多种方式进行,相当于间接为每一个页面选择最合适的维护方式。这样,既可以减少搜索引擎的负担,又可以为用户提供及时的信息。

例如:在一个网站中,会存在多种不同性质的页面,常见的包括:“首页”、“论坛页面”、“内容页面”等。对于更新比较频繁的页面(例如:首页),可以使用“增量抓取”方式对其进行监控,这样就可以对网站中相对重要的页面进行及时更新;而对于实时性非常高的论坛页面,则可以采用“分类定位”的抓取方式;而为了防止遗漏网站中的某些页面,还需要采用“定期抓取”的方式。

_______________

注①:80/20法则是意大利著名经济学家维尔弗雷德•帕累托发现的,其核心思想是20%的活动能产生满足80%需求的物质。例如:20%的产品或者服务创造了80%的利润,20%的内容满足80%用户的需求。

6.页面储存

在上面的内容里,我们已经知道了搜索引擎对页面的抓取及维护方式。接着,我们还要了解一下搜索引擎在抓取页面后,需要储存哪些信息才能满足接下来的工作对数据的需求。

页面是搜索引擎对网站进行信息处理的基础,搜索引擎大部分工作都是在页面上开展的。但是,仅仅依靠页面中的内容并不能满足搜索引擎对数据处理的需求。搜索引擎能否在抓取页面的过程中获取到更多、更有价值的信息会直接影响搜索引擎的工作效率及排序结果的质量。所以,搜索引擎在抓取页面时,除了储存原始页面外,还会附加一系列的信息(例如:文件类型、文件大小、最后修改时间、URL、IP地址、抓取时间等),再把这些信息作为开展某项工作的依据,例如:如果某个文件过大,就可能会被搜索引擎放弃索引;而最后修改时间则暗示了页面更新的日期等。

2.3.2 页面分析

页面抓取只是搜索引擎工作的一个基础环节,页面抓取回来后并不代表搜索引擎马上就可以向终端用户提供查询服务。因为,用户在使用搜索引擎进行查询的时候,使用的是一个词或者短语,而到目前为止,搜索引擎仅能提供整个原始页面,即不能返回与用户查询条件相匹配的信息。因此,搜索引擎还需要对原始页面进行一系列的分析、处理,以迎合用户信息查询的习惯。

如下图 2-7所示,搜索引擎首先对储存的原始页面建立索引,再过滤原始网页的标签信息,从中提取出网页中的正文信息;然后,对正文信息进行切词,并建立关键字索引,得到了页面与关键字间的对应关系;最后对所有关键字进行重组,从而建立关键字与页面之间的对应关系。

图 2-7 网页分析、处理流程

1.网页索引

为了提高页面检索的效率,搜索引擎需要对抓取回来的原始页面建立索引,由于URL就是页面的入口地址,为原始页面建立索引实际上就是为页面的URL建立索引,这样就可以实现根据URL快速定位到对应的页面。

2.网页分析

网页分析是整个网页处理中最重要的环节,包括了“网页正文信息的提取”(即标签信息过滤)、“切词”、“建立关键字索引列表”及“关键字重组”这几个重要的步骤。结果形成了一个关键字对应多个原始页面的关系,即形成了与用户查询习惯相符合的信息邹形。

(1)正文信息提取

网页正文信息的提取实际上就是对网页中非正文信息的过滤。其中,最为重要的就是对网页中标签信息的过滤(例如:HTML标签、JS标签,PHP标签)。经过标签过滤以后,搜索引擎就可以得到网页的正文信息。

(2)切词/分词

经过对原始页面提取正文信息后,搜索引擎就可以得到页面的实质内容。而为了得到与用户查询相关的数据,搜索引擎还需要对页面中的内容进行切分(也就是我们常说的“切词”或者“分词”),从而形成与用户查询条件相匹配的以关键字为单位的信息列表。

每个搜索引擎的切词系统都会存在或多或少的差别,切词系统的优劣主要取决于开发者对语言的理解能力。特别是在中文语言环境里,切词算法直接影响网页内容经过切词处理后会产生什么样的关键字,而这些关键字是否与用户的搜索习惯一致。因而,切词的结果直接决定搜索引擎能否提供与用户查询条件相匹配的信息。

在中文环境里,常见的分词方法包括“字符串匹配分词”及“统计分词”这两种,下面向大家简单介绍一下这两种中文分词算法。

1)字符串匹配分词

字符串匹配分词是基于一个足够大、足够权威的“词典”上进行。如果页面上的词与“词典”中的词匹配上了,则为命中。这样就可以得到一个词或者短语。

2)统计分词

统计分词是根据相邻的两个(或者多个)字出现的概率判断这两个(或者多个)字组合后是否会形成一个词,统计分词也常常会结合“词典”进行匹配,常用于识别一些新词汇。例如:“博客”等一些在传统中文语言中是不存在的词汇。

(3)关键字索引

网页正文信息在经过切词系统处理后,形成了关键字列表。关键字列表中的每条记录都包括了该关键字所在的关键字编号、网页的编号、关键字出现次数以及关键字在文档中的位置等信息,如下表 2-1所示。

表 2-1 关键字列表

例如:“记录1”中的关键字“K1”在页面中出现了三次,对应页面中的“A1”,“A5”,“A7”区域,如下图 2-8

所示。

图 2-8 关键字“K1”在页面中的分布示意图

为了提高对关键字的检索效率,搜索引擎还会为关键字列表建立索引。这样,经过对网页及关键字列表都建立索引后,就可以实现从一个网页快速定位到某一关键字。

例如:“网页0”经过信息过滤后得到的内容是“中国广东省深圳市”;然后,对内容进行切词后产生关键字“中国”、“广东省”、“深圳市”,并对关键字建立索引。这样,根据“网页0”,搜索引擎就可以快速定位到关键字“中国”、“广东省”或“深圳市”上,如下图 2-9所示。

图 2-9 页面与关键字间的对应关系

然而,用户是通过关键字去寻找那些承载相应信息的页面的。所以,搜索引擎还需要对已有信息进行相应的处理,建立关键字与页面URL间的对应关系表,从而实现根据关键字快速定位到多个页面的功能,这就是下一节所说的“关键字重组”问题。

(4)关键字重组

为了迎合用户寻找信息的习惯,即以关键字为条件寻找与关键字相关的页面。因此,搜

索引擎需要建立以关键字为主索引的一个关键字对应多个页面的关系表,即关键字反向索引表。而建立关键字反向索引表最重要的任务就是对所有页面中的关键字列表进行重组。

经过之前对关键字建立索引后,已经产生了网页与关键字的一对多的对应关系。接下来,

搜索引擎把所有页面中的关键字进行重组,并建立关键字索引,从而形成一个不重复的关键字列表集合,即关键字列表中,每个关键字都是唯一的。这样,通过某一个特定的关键字就可以找到一个或者多个网页。从而实现根据关键字返回相应页面的功能,如下图 2-10所示。

图 2-10 关键字与页面间的对应关系

经过对原始页面进行分析、处理后,搜索引擎已经可以根据用户的查询条件返回相应的页面列表。但是,简单地向用户返回这个页面列表,往往不能满足用户的需要。所以,搜索引擎还会根据页面与用户查询条件相关性的高低再对这个列表进行重新排列,然后把这个处理后的列表返回给用户,这就是下一节将要向大家介绍搜索引擎对页面排序的问题。

2.3.3 页面排序

用户向搜索引擎提交关键字查询信息以后,搜索引擎就在搜索结果页面返回与该关键字相关的页面列表,这些页面按照与关键字的接近程度由上至下进行排列。而决定页面排列次序的因素非常多,在本书里将向读者介绍几种最常见,也是最重要的因素,包括“页面相关性”、“链接权重”及“用户行为”。

1.页面相关性

页面相关性是指页面内容与用户所查询的关键字在意义上的接近程度,主要由“关键字匹配度”、“关键字密度”、“关键字分布”及“关键字所使用的标签”等决定。

(1)关键字匹配度

关键字匹配度是指“页面P”中的内容与用户所查询的“关键字K”之间的匹配程度,主要由两个因素决定:

1. “页面P”中是否存在与查询条件“关键字K”相匹配的内容,即页面内容中是否包含“关键字K”。

2. “关键字K”在“页面P”中出现了多少次,即“页面P”中有多少个“关键字K”。

为了计算关键字匹配度,搜索引擎为每个页面分配一个关键字匹配值,该值由关键字在_______________

注①:关键字重组即把所有页面中的关键字组成一个集合。

页面中出现的次数决定。假设某个关键字在页面中出现一次,关键字匹配值为10;那么,如果某一关键字在页面中出现10次,则关键字匹配值=10*10。

如果这种假设成立,则某关键字在页面中出现的次数越多(即词频越高),页面的相关性就越高,这样搜索结果就极容易被网站所有者操控。例如:一个网站想要提高页面的相关性,只需在页面中添加足够多的关键字即可。

因此,关键字词频决定页面相关性的做法是极不合理的,还需要结合“关键字密度”、“关键字分布”及“关键字所使用的权重标签”等多方面来进行制约。

(2)关键字密度

为了有效防止网站所有者恶意操控搜索结果,搜索引擎根据“关键字词频”与“网页总词汇量”的比例(即关键字密度值)来衡量页面中某关键字的词频是否合理。

假设页面中某关键字的密度在50%时,这个页面的关键字密度值为20。那么,在内容是“camcorder battery”的页面中,camcorder的关键字密度是50%,则针对关键字“camcorder”,这个页面的关键字密度值为20。

(3)关键字分布

关键字分布,即关键字在页面中出现的位置,关键字在页面中不同的位置上出现会对页面的相关性带来一定的影响。搜索引擎通过记录关键字在页面中出现的位置来计算页面的关键字分布值,从而得到关键字分布与页面相关性之间的关系。

假设关键字在页面的顶部出现时,关键字分布值为50;而在底部出现时,关键字分布值为10;则关键字“K1”同时出现在“页面A”的顶部与底部时,该页面的关键字分布值就是60。

(4)标签影响

在网页中,网页制作者利用不同的HTML标签使页面中相关的内容实现不同的视觉效果(例如:字体的样式、字号、颜色等),灵活地运用各种HTML标签还有助于提高页面相关性。

我们在阅读文章的时候经常会遇到文章中某些内容的表现形式与周围的内容是存在明显区别的,例如:某些内容的字体颜色与周围的内容会形成强烈的反差,或者字号大小不一致等。

这就说明了文章的作者是刻意去突出这部分内容,通常是因为这部分内容比较重要。同样,在对网站进行优化的时候,我们也可以使用同样的方法去突出页面中某一些重要的内容,例如:利用不同的HTML标签去标注页面中需要突出的内容。这样,搜索引擎在分析页面的时候就会根据HTML标签识别页面中内容的样式,从而判断页面中哪些内容更加重要。

在页面权重分配里,按照标签的作用,可以把HTML标签分为“权重标签”与“非权重标签”两大类。权重标签是指会影响页面权重的标签,常见的权重标签包括,

等;

而非权重标签常见的有,等。

假设表2-2中是搜索引擎对某些标签权重值的定义,则对于一个内容是“

搜索引擎优化

”的页面,针对“搜索引擎优化”这个关键字,标签权重值=标签权重值+

标签权重值,即60。

表2-2 样式标签与权重值的对应关系

通过对“关键字匹配度”、“关键字密度”、“关键字分布”及“权重标签”进行说明后,我们推算出页面相关性的计算公式如下:

W(relevance)=W(match)+W(density)+W(position)+W(tag)

式中,Weight(relevance)是页面相关性;W(match) 是关键字匹配值;W(density) 是关键字密度值;W(position) 是关键字分布值;W(tag) 是标签权重值。

例如:某页面的内容如下:“搜索引擎优化

搜索引擎

„„”,

则针对“搜索引擎优化”这个关键字来说,由于只出现一次,则关键字匹配值W(match)=10;关键字密度是50%,则关键字密度值W(density)=20;关键字出现在页面的顶部,则关键字分布值W(position)=50;而权重标签在突出关键字“搜索引擎优化”时出现了一次,则标签权重值W(tag)=10,即:W(relevance)=10+20+50+10。

搜索引擎利用“关键字匹配度”、“关键字密度”、“关键字分布”及“权重标签”这四大要素相互制约的作用,完善页面相关性的计算。但是,本节里所介绍的都是一些网站内部可操控因素。为了提高排序中信息的质量,搜索引擎还引入了一些外部不可操控的因素对页面相关性进行综合评估,例如:“外部链接”与“用户行为”等。

2.链接权重

链接主要分内部链接及外部链接两种,是网页制作或者编缉者在对页面内容进行规划或者编缉时加入到页面中的,加入的理由可能是该链接所指向的页面非常重要或者是大部分用户所需要的。因此,某一页面得到的链接越多,从一定程度上反映了该页面越重要,链接权重值就越高。

如果把整个互联网看作是一个有向图,超链接为有向边,网页为节点。那么,绝大部分网页都会有一个“入度”与“出度”,根据网页的“入度”数量及提供“入度”的页面权重值来计算页面链接的权重是一个非常好的想法。

假设下图 2-11是页面之间的关系图,其中“V1”,“V2”,“V3” 为网页;而箭头方向则代表页面贡献链接或从别的页面中得到的链接。以网页V2为例,V2对V1,V3各贡献了一个链接,而得到了V2的链接。

图 2-11 页面关系图

(1)内部链接

内部链接是指网站内部页面之间的链接关系,体现了网站内部对某个页面的认可程度。理论上,页面获得的链接质量越高、数量越多,其重要性也相对越大。

(2)外部链接

外部链接指本站以外的页面之间的链接关系。由于外部链接的不可操控性,外部链接在整个链接关系中占着更大的权重比例,是决定整个页面权重最重要的因素。

(3)默认权重分配

网站页面数量是在不断变化的,但由于时间的关系,新增加的页面即使内容质量很高,得到的链接数量也是有限的,因此链接权重值通常会很低。在这种情况下,搜索引擎就需要对这些新页面的链接权重值按照相应的方案进行补偿,使得新页面能够得到更合理的链接权重值。

在链接权重值补偿方面,搜索引擎把页面被抓取的日期作为一个参考因素。它认为页面在单位时间内获得链接的数量越多、质量越高,则该页面的质量也相对更高。

例如:页面A得到30个链接,而页面B也得到30个链接(假设这些链接的质量是相等)。但是,页面A花了100天时间,而页面B只花了1天时间。这从一定程度上反映页面B比页面A更重要。因此,就需要给页面B进行一定的补偿,使得页面B所得链接权重值高于页面A。

3.用户行为

搜索引擎在完成页面基本权重计算以后,就可以向用户展示初步的排序结果。但这个排序结果不一定能让大部的用户满意,因此还要结合其他因素对该排序结果进行改进。例如:统计每条搜索结果的点击次数来推测用户对搜索结果的偏好。

用户对搜索结果的点击行为是衡量页面相关性的因素之一,是完善排序结果,提高排序结果质量的重要补充,属于外部不可操控因素(详细请参考本章的“关键字查询”一节)。

综上所述,搜索引擎通过计算页面在“页面相关性”、“链接权重值”及“用户行为”等方面的得分,得到页面的总权重值;然后,再按照页面的总权重值从高到低进行排序并把这

个经过排序的列表返回给用户。

即:W(page)= W(relevance)+ W(link)+ W(user)

式中,W(page)是页面权重值;W (relevance) 是页面相关性值;W (link) 是链接权重值;W (user) 是用户行为得分。

2.3.4 关键字查询

在计算完所有页面的权重以后,搜索引擎就可以向用户提供信息查询服务。搜索引擎查询功能的实现非常复杂,用户对返回结果的时间要求也非常高(通常是秒级),要在这么短的时间内完成这么复杂的计算是不现实的。所以,搜索引擎需要通过一套高效的机制处理来自用户的查询。这主要应该包括:

1. 在用户发出查询请求前就完成被查询关键字的反向索引、相关页面权重计算等工作;

2. 为那些查询最频繁的关键字对应的页面排序列表建立缓存机制。

其中,关键字重组、页面权重分配等工作已经在前面的内容里进行了详细的说明。接下来,就是向读者介绍搜索引擎如何建立信息查询的缓存机制。

1.查询流程

首先,向大家介绍搜索引擎处理用户查询的流程,如下图 2-12所示。

1. 先对用户提供的查询条件进行切词,并删除查询条件中没有意义的字或词,例如:“的”、“得”等停用词;

2. 再以切词结果作为条件在“关键字反向索引列表”中进行匹配;

3. 如果存在匹配结果,则把所有与关键字相匹配的页面的URL组成一个列表;

4. 最后,把匹配的页面按照权重值从高到低进行排序,并返回给用户。

(注:其中3,4两个步骤在用户查询之前已经完成。)

例如:用户查询“手机图片”,搜索引擎对其进行切词后得到的查询条件是“手机+图片”;再把“手机+图片”在“关键字反向索引列表”中进行匹配;结果得到了“A”,“B”,“C”这三个相关页面;再计算三个页面的权重值,如果这三个页面的权重值关系是“B>C>A”,则这三个页面在搜索结果列表中的排列顺序就是“B,C,A”。

2.用户行为

用户在搜索引擎中的行为主要包括“搜索”及“点击”,搜索是用户获取信息的过程,点击是用户得到需要信息后的表现。

用户的“搜索”及“点击”行为中蕴含着非常丰富、重要的信息。例如:在用户搜索行为中包含了“提交的关键字”、“提交时间”、“用户IP地址”等信息;而在点击行为中则包含了“每个结果的点击次数”等信息。

搜索引擎通过对用户行为的分析可以进一步发掘用户的需求,提高搜索结果的精准度。例如:从用户的搜索行为中,搜索引擎还可以发现新词汇;而从用户对搜索结果的点击行为中,可以分析出用户对每个搜索结果的偏好等。

(1)搜索

搜索是用户获取信息的途径,是搜索引擎最基本的功能。搜索引擎可以在用户的搜索行为中得知某一关键字被搜索的次数,通过对关键字被搜索的次数的分析可以发现新词汇及进一步了解用户的搜索习惯。

由于语言是不断发展的,随着时间的推移会产生更多的新词汇。特别是在互联网环境中,某个热点的事件也有可能成为一个新的词语,例如:“艳照门”等。

对搜索引擎而言,新生词汇主要是指那些目前搜索引擎词典系统里不存在,但是又被频繁搜索的关键字。如果某一关键字在搜索引擎词典系统里不存在,则切词时就不会产生该关键字,这样用户在查询该关键字时就返回不了相关的信息,也就不能满足用户的需求。因此,搜索引擎对新词汇的学习能力从一定程度上反映了搜索引擎对语言的理解能力,是衡量搜索引擎好坏的重要指标之一。

结合用户搜索习惯与页面内容去发掘新关键字是搜索引擎学习新词汇的主要方式之一,如下图 2-13所示。

1. 对用户查询日志进行分析,筛选出日志中查询相对频繁的词汇;

2. 如果某个查询相对频繁的关键字不存在于词典系统中,就把这个关键字与部分页面的内容进行匹配;如果命中,则表明该关键字是存在的,加入词典系统;否则,对下一个查询频繁词语进行匹配。

(2)点击

点击是用户找到所需信息后的表现,反映了用户对信息的关注。因此,用户对链接的点击也是衡量页面相关性的因素之一,是衡量页面相关性的一个重要补充。

在同一个关键字的搜索结果列表中,不同的用户会有不同的选择。但是,如果某一个结果的点击次数是明显多于其他结果的,则从一定程度上反映了该页面是大部分用户所需要的(特别是当该链接处在比较靠后的位置时)。

众所周知,搜索结果中越靠前的链接得到点击的机率就会越高。按照这样的逻辑,那么在排在第二、第三,甚至第四的页面被点击的机会就会变得越来越小,但这并不代表这些页面就不比排在前面的页面重要,只是在目前的排序结果中,用户还没机会发现它们而已。所以,对于不同位置上链接的点击,搜索引擎会对其权重值进行相应的补偿。假设排在第一位的结果每被点击一次,会产生1分的补偿,而排名在100名的结果被点击一次,则产生10分甚至更多的补偿。

3.缓存机制

为了能在极短的时间内响应用户的查询请求,搜索引擎除了在用户提交查询信息前就生成关键字对应的页面排序列表以外,还需要为那些查询最频繁的关键字对应的页面排序列表建立缓存机制。

经过统计,搜索引擎发现关键字查询的集中现象非常明显。查询次数最多的前20%的关键字大约占了总查询次数的80%(就这是著名的80/20法则)。因此,只要我们对这20%左右的关键字建立缓存就可以满足80%的查询需求。

由于用户查询时返回的信息主要是与关键字相关的页面排序列表,因此关键字缓存机制的建立主要是针对与关键字相关的页面排序列表。在对常用关键字的页面排序列表建立缓存后,搜索引擎就可以把缓存中的信息返回给用户,这样速度就会非常快,也就能满足绝大部分用户的需求。

由于互联网中的信息是时刻都在增长的,如果搜索引擎每次都向用户返回同样的信息。不但用户得不到更高质量的信息,其他网站也不能向用户展示最新的高质量信息,从而造成信息滞后。因此,搜索引擎还会对缓存中的内容进行定期更新。

2.4 搜索引擎介绍

由于搜索引擎优化其中一个主要任务是提高网站的搜索引擎友好性,因此学习搜索引擎优化还需要熟悉各主要搜索引擎的习性。下面将向读者介绍两大中文搜索引擎:“谷歌”及“百度”。

2.4.1 Google

Google是基于全文索引的搜索引擎,起源于斯坦福大学BackRub项目,由Larry Page 及 Sergey Brin 主要负责。到1998年,BackRub更名Google,并成立公司。发展至今,

Google搜索涉及全球多种语言,是目前最有影响力的搜索引擎,如下图2-14所示。

图 2-14 Google中文首页

Google是目前世界上最大的搜索引擎,先进的算法被争相模仿。因此,加深对Google的了解可以帮助我们更好地认识其他搜索引擎。

在搜索引擎优化方面,我认为Google与其他搜索引擎主要存在以下明显的区别:

1. Google十分重视链接关系,对于链接的质量、数量及相关性方面的分析技术在业界更是遥遥领先。尽管百度、雅虎也非常重视链接关系,但对于链接的质量及相关性方面的分析则远不如Google。例如:百度单纯的以链接数量及质量衡量页面的重要性,而忽略链接关系中网站间的相关性。

2. 在切词算法上,Google与其他中文搜索引擎也存在一定的区别。

3. 在对待新网站方面,Google非常严格,新网站只有同时满足多个条件时,才能正常参与排名竞争,这就是所谓的“沙盒效应”现象。这样做可以有效避免垃圾网站,但同时也给一些新的优秀的网站诸多制肘,很难通过Google向用户展示其极具价值的信息。

4. 在对垃圾信息处理方面。尽管Google目前还是以人工为主,但与其他搜索引擎相比,Google Spam检测算法已经比较成熟。对于一些常见的作弊手段,Google可以轻易识别。例如:伪装(Cloaking)、门页(Doorway Pages)、堆砌关键字、隐藏文字、垃圾链接等。

2.4.2 百度

图 2-15 百度首页

同是中文搜索引擎的领先者,也许百度的技术不如Google。但是,百度在中国大陆的市场占有率方面要比Google大得多。因此,加深对百度的认识也是非常必要的。

1. 如果把决定页面权重的因素分“内部因素”与“外部因素”两大类。在百度中,“内部因素”与“外部因素”在影响页面权重方面的差距比较小。

2. 百度对新网站比较宽松,这就造成了搜索结果中充斥着大量的垃圾信息,严重影响了用户体验。

3. 百度也非常重视链接关系,对于被高质量页面链接的页面会赋予极高的权重,但却忽略了链接关系中网站间的主题相关性。

4. 百度对搜索结果的人工干预非常强。

总结

了解搜索引擎的工作原理是开展搜索引擎优化工作的基础。只要充分掌握搜索引擎工作的流程及原理,我们才能更好地规划网站,提高网站的搜索引擎友好性。


相关文章

  • 第一章 网络能为我们做什么第三课 因特网信息资料检索原理
  • 第二课时       信息检索工具的工作原理 教学目标: 了解因特网信息检索工具的工作原理,进一步提高搜索技能,熟练地使用检索工具获取所需信息. 教学内容: 1.介绍全文搜索和目录搜索引擎的工作原理 2.资源搜索的定律及策略 教学重点.难点 ...查看


  • 1.3因特网信息资源检索[教学设计]
  • "教学中的互联网搜索" 教案设计 徐州市城东中学 王 志 烨 2012年3月20日 "教学中的互联网搜索" 教案设计 一. 教案背景 1. 面向学生:高中 2. 学科:信息技术 3. 课时:2课时 4 ...查看


  • 网络搜索引擎原理及检索技巧_刘咏梅
  • 2003年第2期(5月) 场 . ZM",,2003 合肥教育学院学报 ]',ur,,al.)j'月刁云11,:sriture<了EJucari',,: 20卷2期<总第62期) Vol.20,乃人,.2 网络搜索引擎 ...查看


  • 搜索引擎原理的重要性
  • 搜索擎引理的原重性要 们做我SEO的效体验果提高是关键词排名,提转高率化但这,切一前提的便懂得是索引擎原搜理,那今么我天便来们研究下索搜引. 擎 一搜:引擎索四曲步 在说搜 索擎之引,首前先说一明问个题互联,网一是个海,洋而单不我指在搜索引 ...查看


  • SEO搜索引擎的工作原理
  • 搜索引擎的工作原理 (1)搜索引擎的组成 从技术角度说,搜索引擎基本由三部分组成:第一部分是蜘蛛软件(Spider),即自动的收集程序,它的作用是负责收集网页的内容;第二部分是索引器(Indexer),其作用是将收集回来的内容进行分析,然后 ...查看


  • 搜索引擎的工作原理
  • 搜索引擎工的原作 第一步:爬理行 索搜引的擎取抓序程百度(蜘)蛛沿会着网的站接进行爬链行.所以说网站的接链一要定四通八达不能存,在链死,接让蜘可以蛛畅无通阻的在们的我网上站爬行 .网的链接相当站于蛛蜘网 . 第二步:抓存储取 蜘蛛会把沿着接 ...查看


  • 排气阀工作原理
  •   来源 识图  保存 更多 意见反馈  分享 壁纸 登录 已登录    关闭 相关搜索 水管排气阀工作原理|自动排气阀工作原理消防排气阀工作原理|气缸排气阀工作原理气动排气阀工作原理|电磁排气阀工作原理干燥器排 ...查看


  • EOS工作流引擎工作原理
  • 1. 工作流基础知识 -- 2. EOS工作流引擎工作原理 本文是我在工作之余写的一点我对EOS工作流的了解,我的理解不一定全是对的,可能会与引擎的真正的面目有出入.所以只能提供给大家一点参考. 2.1. EOS工作流引擎核心调度算法 EO ...查看


  • 第一章教案(网络能为我们做什么)
  • 课题1 因特网服务类型 [教学分析] 一. 教材分析 本节内容为教育科学出版社普通高中课程标准实验教科书<网络技术应用>(选修)第一章"网络能为我们做什么"的第一节"因特网服务类型",课时 ...查看


热门内容