复杂的1秒 图解Google搜索技术

服务器 数据中心
在你点击了Google搜索按钮之后到看到结果这不足1秒钟的时间内,它做了什么?大家不妨看看谷歌搜索流程图,这张流程图展示了每天拥有3亿次点击量的Google搜索按钮背后搜索引擎在那不到1秒的响应时间内所进行的处理。

谷歌(Google),一个非常成功,但又十分神秘,而且带有几分理想化色彩的互联网搜索巨人,它还是一家相当了不起的广告公司,谷歌首页上的那个搜索按钮是其年赢利200亿美元的杀手级应用,也是Internet首屈一指的商业和技术神话。近日国外一家网站(PPCblog)精心绘制了一张谷歌搜索流程图,这张流程图展示了每天拥有3亿次点击量的Google搜索按钮背后搜索引擎在那不到1秒的响应时间内所进行的处理。

在你点击了Google搜索按钮之后到看到结果这不足1秒钟的时间内,它做了什么?互联网上的内容如何被谷歌找到?什么样的内容会被收录?想必大家一定都想知道谷歌搜索按钮背后的秘密吧。别急,开始之前我们先来看一下神秘的谷歌数据中心。

谷歌自家设计服务器

谷歌的数据中心高度机密,我们所能得到的信息十分有限。我们先来看几个数据:谷歌在美国本土的数据中心有19个以上,另有17个分布在美国以外的世界各地;每个数据中心有50万平方英尺(46450平方米),建造一个数据中心要花费约6亿美元;谷歌的数据中心是世界上最高效的设施之一,非常环保;数据中心使用50-100兆瓦的电力,考虑到冷却问题,通常建在便于用水的地方;谷歌的服务器被安置在标准的海运集装箱中,每个集装箱可容纳1160台服务器。关于谷歌的数据中心,我们就只知道这么多了。

神秘的谷歌数据中心
图1 谷歌自家设计的服务器   

神秘的谷歌数据中心
图2  服务器自备电池  

谷歌拥有的数十万台服务器都是自己设计的,它们认为这是公司的核心技术之一(51CTO推荐文章:Google要出服务器?英特尔要小心了)。每台服务器都配有一颗12伏电池,确保万一主电源断电时还可持续供电。

至于为什么为每台服务器配备电池,谷歌的回答是成本。一般数据中心多依赖UPS(不间断电源系统),这基本上算是大电池,会在主电力失效而发电机还来不及启动时暂时协助供电。而谷歌认为直接把电力内建到服务器更便宜,而且成本能直接跟服务器数量相符合,如此便不会浪费多余的容量。另一个原因是效率,大型UPS可达92-95%的效率,这意味着许多电力还是被浪费掉了,但谷歌采用的内建电池作法效率超过99.9%。
 

神秘的谷歌数据中心
图3 谷歌的服务器被安装在集装箱中,每个集装箱容纳1160台

[[14582]]
图4  工作中的谷歌员工#p#

谷歌如何找到并收录你上传的内容?

谷歌如何找到并收录你上传的内容?
图5  发生在用户搜索之前

谷歌使用它的"爬虫"工具在一刻不停地周游互联网世界的每一个角落。上图中间的6个步骤依次描绘了从内容出现在互联网上到内容被收录进谷歌的数据库供用户检索这一过程,其中第2、3、5步又有许多分支,所有这些都是为了建立一个信息"集汇池",这是第一个阶段的工作,第二个阶段才是从这个"池"中为用户筛选他们所需要的内容。接下来我们一步步看谷歌是如何搜集并整合信息的。

1、网友上传内容,比如博客、微博或其它类型的WEB内容被更新到网上。

2、Google的"爬虫"发现了这一更新。在这一步,谷歌加入了许多判断机制,主要包括以下几点:

2.1、Google的"爬虫"沿着链接路径(URL)周游互联网,但如果没有URL指向某一站点,则这一站点将不会被索引。

2.2、如果你在robots.txt中设置了不许索引(部分或全部),Google的"爬虫"将不会抓取你站点上的相应内容。

2.3、如果指向你站点的连接上有nofollow标签,Google的"爬虫"将不会从这些URL路径来到你的站点。如下图:

谷歌如何找到并收录你上传的内容?谷歌如何找到并收录你上传的内容?
  图6 图7 网页原代码中的nofollow标签

URL就像是Google"爬虫"周游互联网时的路标,谷歌当然希望收录有价值的网页,所以必须采取一种机制分辨哪些URL是垃圾信息,nofollow标签正是谷歌所倡导的方法之一。网站的合法更新人员几乎不会上传垃圾URL,但它们往往大量出现在评论跟帖和论坛中,就像上图中的例子,这些URL对于谷歌来讲是没有意义的,为了防止"爬虫"经由这些URL到达某一站点,在源代码中它们都会自动被加上nofollow标签。

2.4、Google也能通过blog软件或xml站点地图找到你的网站。

2.5、从权威性越高的网站链接到你网站的URL越多,你的网站的权威性也就越高,但Google"爬虫"始终会忽略被加上了nofollow标签的URL。

上面这几点大概就是谷歌在收录信息时对内容提出的"准入"要求,看来在一些开放的地方(比如论坛)大量发布URL以求让谷歌关注,这一小伎俩是没有什么效果的。以上是信息被谷歌收录之前所发生的事,一旦信息被谷歌收录了会发生什么呢?请往下看:

谷歌如何找到并收录你上传的内容?
图8  信息"素材"的存储  

3、信息被谷歌收录之后当然也要进行加工处理,主要包括两个步骤,一是信息"素材"的存储,二是对收录的信息按要求进行优化,上图描绘了"素材"的存储方式,主要包括两部分:网页标题和链接数据被保存在一个索引中,用于广度优先搜索(可见文章标题是多么的重要,做编辑的一定要有驾驭标题党的觉悟);网页内容保存在另一个索引中,以用于检索频率不高的长尾、个性化、深度优先搜索。

此时可能你已经明白了,当你用谷歌搜索时,你并没有在检索时时更新的互联网,而是在检索谷歌的缓存,只是谷歌更新的速度非常快,以让其缓存尽量与互联网上的内容同步。

谷歌如何找到并收录你上传的内容?
图9  优化已收录的信息  

4、谷歌基于URL评估域名和网页的总体权威性。

5、检查网页以防止作弊行为,包括以下几点:

5.1、谷歌的搜索质量和反垃圾信息审查。

5.2、1万多远程测试用户评价搜索结果的质量。

5.3、谷歌征请用户对有PageRank讹诈嫌疑的垃圾信息进行举报。

5.4、谷歌根据数字千年版权法(DMCA)去除盗版内容。

6、在对页面进行分析之后,每个页面都被附加上很多用于辅助用户搜索的数据片。

从信息出现在互联网上到被谷歌收录,然后谷歌对这些数据进行分析优化,至此,一个实时更新的互联网信息"集汇池"就建立起来了,可以说谷歌存储着整个互联网的快照。以上就是我们在按谷歌搜索按钮之前它所做的事情,接下来我们看一下谷歌如何响应用户的搜索请求,另外谷歌的广告是如何来到我们面前的,不要忘记,谷歌可是靠广告营生的。

只要有人用谷歌的服务它就能从中赚钱,就怕像安卓(Android)手机系统那样,有些流氓厂家把安卓装在了自己的智能手机中,但是把其上谷歌的各种服务全部抹掉,改用自己的服务,这样谷歌当然不干了,所以安卓一更新,这些流氓手机厂家就紧张。

#p#

谷歌如何帮助用户进行搜索?
  

谷歌如何帮助用户进行搜索?
图10  从用户开始检索到生成初步结果

从用户开始检索到生成初步结果(这时的结果并不会直接呈现给用户),经历了4个步骤:

1、用户发出搜索请求。谷歌搜索质量工程师PatrickRiley说:在大多数搜索中,你的搜索处于多个并行的控制过程或谷歌实验室的创新项目组过程中,可以说每一个查询请求都会参与一些谷歌的创意实验。我们都是小白鼠?

2、谷歌会对用户输入的关键词提供一些建议。

3、谷歌会用同义词匹配与你的搜索关键词语义相近的查询结果。

4、生成初步的查询结果,虽然谷歌宣称可以找到成千上万的相关结果,但一般只显示不到1000条,同时查询结果将被进行本地化处理,本土站点在查询结果中优先出现。

#p#

搜索结果将如何被优化?

1、对查询结果按权威性和PageRank进行排序,重复的查询结果被剔除。此时的查询结果已接近最终形态,在这一基础上,有两个进程将分开进行--查询结果优化和为其匹配相应的广告。我们先来看查询结果优化。
 

搜索结果将如何被优化?
图11  对查询结果进行过滤处理  

2、对查询结果进行过滤处理。包括以下几点:

2.1、对通常的查询,谷歌会把相关的专题性垂直搜索结果(比如新闻、购物、视频、书籍、地图等)也加到返回的查询结果中。

2.2、个性化,用户访问过的网站在查询结果列表中会更靠上

2.3、大量使用锚点的网站有可能被从查询结果中删除

2.4、如果网页被其他高PageRank的网站引用,则网页的重要性会大大提高。

2.5、趋势分析:对搜索流量爆增或有大量新闻的搜索关键词,谷歌会在新的查询结果中增加额外的PageRank权值。

2.6、同一个域名下的多个网页如果具有相同的PageRank会被归为一组。

2.7、查询结果最终形成(将与广告一同显示)

#p#

搜索结果与广告
  

搜索结果如何与广告相结合?
图12 用户所搜索的内容如何与广告相结合?

1、Google根据关键词、广告类型、用户所处位置找出相关的被竞价拍卖的关键词广告

1.1、关键词广告必须遵守当地法律条文。广告业主的非法广告将被取缔,如果关键词的搜索流量过低或关键词广告点击量偏低,则会被自动禁用,出于商业策略,像亚马逊这样的客户会给予优惠折扣。

1.2、关键词相关广告按收益潜力排序。

1.3、对广告业主来说广告内容一般是固定的,但有时使用动态关键词使关键词广告与搜索关键词相关度更高。一些广告允许增加附属信息,比如网站链接、电话号码、产品链接、地址等。

1.4、如果广告拥有相当高的点击率,则会显示在搜索结果列表的上方,以使其更显眼。

1.5、其余的广告依序显示在页面右侧

经过上述一系列复杂的信息处理过程,最终返回给用户的是一个个性化的、具备地理位置特征的、布局简洁的查询结果页面,当然还精确匹配了广告,所有这些步骤在总共不到1秒的时间内完成,每天3亿次的点击量给Google带来了超过200亿美元的年收入

关于精确广告匹配的小例子,请看下图:
 

搜索结果如何与广告相结合?
图13  思科路由器的广告北京搜索结果

搜索结果如何与广告相结合?
图14  思科路由器的广告广州搜索结果  

海芯博业的广告下面标注了北京市三个字,可见这是一个地区性的广告推广,在广州搜索结果中不可见。

#p#

谷歌官方对其搜索技术的叙述

我们搜索技术的后端软件会在服务器侧触发一系列执行时间不到1秒的并行计算,谷歌问世前的传统搜索引擎的搜索结果严重依赖于关键词在页面上出现的频度,我们使用了200多个指标信号(其中包括我们拥有专利的PageRank页面等级加权算法)用来检查万维网的链接结构并决定网页的重要程度。

我们假定一个网页的重要程度取决于别的页面对它的引用,就像学术论文中的引用指数一样,重要的论文总是会被很多其他论文引用。然后我们再根据搜索条件进行超文本匹配分析(对"爬虫"抓取的页面内容进行关键词倒排索引检索)确定跟搜索请求最相关的网页。综合最重要的网页和跟搜索请求最相关的网页两个方面,我们就能按重要程度和用户搜索请求相关程度把查询结果排序后呈现给我们的用户。

附:Googlegraphic原图。

谷歌官方对其搜索技术的叙述
图15 Googlegraphic原图

【编辑推荐】

  1. 此一时彼一时 看看成名前的Google机房
  2. 走一路拍一路 闲逛Google数据中心(多图)
  3. Google一次 服务器耗能多少?
责任编辑:景琦 来源: PPCblog
相关推荐

2010-08-31 09:03:07

IT技术周刊

2011-04-15 17:43:15

Google App Google

2012-06-19 09:53:55

Google数据

2011-08-01 11:56:45

Google搜索

2009-01-13 09:16:28

Google搜索绿色节能

2011-04-25 09:34:52

PythoncGO

2011-08-03 09:43:10

Chrome 13Google

2009-08-24 10:10:43

音频搜索Google List

2013-04-24 09:08:17

Google眼镜

2010-01-13 09:20:18

交换机结构

2012-09-18 09:27:51

2019-02-21 09:55:39

单链表存储C结点

2020-10-29 08:35:06

Pandas函数Python

2010-10-19 09:53:34

Google Sear云计算

2009-03-28 09:17:21

GoogleRim黑莓

2017-04-12 07:08:43

科技新闻早报

2017-06-23 08:45:02

存储技术复杂性

2021-10-04 18:55:46

Google搜索谷歌IE 11

2009-09-28 10:58:31

Google新搜索特性

2021-10-08 10:05:31

DorkifyGoogle Dork漏洞
点赞
收藏

51CTO技术栈公众号