|
Google是如何(hé)收录及(jí)排(pái)序网页的 |
|
我们(men)遇到的最常见的问(wèn)题(tí)之一是“Google是如何判定哪个结果出现在搜索结果的前茅?”,Matt Cutts给我(wǒ)们简单地揭示了(le)如何抓取、收(shōu)录(lù)和给网(wǎng)页(yè)评级。
抓取(qǔ)和收录 当你看到出现在Google的搜索结(jié)果的(de)那个网页(yè)之前,Google在后(hòu)台已经做了(le)许多步骤。Google的第一步是抓取和收录互联网上的数十亿的(de)网(wǎng)页,这个工作时由Google的机器人Googlebot来完成(chéng)的,它浏览网络(luò)服(fú)务器抓(zhuā)取文(wén)件。 抓取的程序并不是漫无目的地在互联网(wǎng)上瞎逛,它访(fǎng)问服务器(qì)的(de)特定的网页,然后扫描(miáo)网页上的超文本链接,如果有新的文件也是这样抓取(qǔ)得(dé);蜘蛛程序给(gěi)每个(gè)得(dé)到(dào)的网页一(yī)个号码,这个号码指向它抓取的网页。
蜘蛛程序抓取了很多的网页(yè),但这(zhè)些网页还不是便于搜索的(de)。如果(guǒ)没有一个索引,你(nǐ)要查(chá)询一(yī)个词,比如“国(guó)内战(zhàn)争”,Google的服(fú)务器每次都要读取每一个文件的所有内容。
因此,第二步就是建立索(suǒ)引。我们(men)不(bú)是去扫描每一(yī)个文件的所有内容,我们巧(qiǎo)妙地(dì)进(jìn)行数据的“转换(huàn)”,列出每一个(gè)文件(jiàn)所包含(hán)的特(tè)定的词,例如,“国内(nèi)”这个词可(kě)能(néng)出现(xiàn)在(zài)文件(jiàn)3,8,22,56,68和92当中,而“战(zhàn)争”这个(gè)词出现在文件2,8,15,22,68和77中。
建立好索引之后(hòu),我们就可以开始对网页进(jìn)行评级,决(jué)定网页的相(xiàng)关程(chéng)度。假设有人在Google的(de)搜索栏(lán)输入“国(guó)内战争”进(jìn)行查询,为了提交搜索结果和对结果进行(háng)评分,我们要做两件事:
1. 找(zhǎo)到包含用户查询的词的(de)网页 2. 给符(fú)合的网页按照相关程(chéng)度进行(háng)评级 Google开发出一个有趣的技巧来加(jiā)速第一步:Google不是把整个(gè)索引存(cún)储在(zài)一台功能强大的计算机上,而是用千百个计算机来存储这些信息。因(yīn)为任务被(bèi)分解到许(xǔ)多的计(jì)算机,可以更快地(dì)找到(dào)所(suǒ)需(xū)的答案(àn)。 详(xiáng)细解释一下,假设一本书(shū)的目录(lù)有30页,如(rú)果一个人要在目录中查寻资料,每次查(chá)询都要花几秒钟;如(rú)果用30个人每人查询(xún)一页目录,显然要比(bǐ)一个(gè)人查询(xún)的速度快很多。同样的,Google将数据分别(bié)存(cún)储(chǔ)在许多(duō)计算机上,这样搜索的速度会大大加快。
我(wǒ)们是如何找到那些包含用户(hù)搜索的词的网页呢?回到(dào)“国内战争”的例子,“国内”这个词出现(xiàn)在(zài)文件3,8, 22, 56, 68 和92; “战争(zhēng)”出现(xiàn)在文件2, 8, 15, 22, 68和77,记下同(tóng)时出(chū)现这两个(gè)词的文件。
国内 3 8 22 56 68 92 战争 2 8 15 22 68 77 国内 战争 8 22 68
这样我们可以清楚地(dì)发现“国内”、“战争”这两个词同时出现的(de)在三个文件里 (8, 22, 和68)。 含有这几个字(zì)的列表叫做“位(wèi)置(zhì)列表”,搜索文件包含这两个(gè)字,这叫做(zuò)交叉搜索位置列表。(较快的(de)交叉搜索的方(fāng)法(fǎ)是(shì)同时进行搜索,如果一个搜索列表,22到68,那另一个就(jiù)可以开(kāi)始(shǐ)搜索其他的) 对(duì)结果进(jìn)行评级 现在我(wǒ)们已(yǐ)经有了一些包(bāo)含用户搜索的关键词的网页,我们要对它们的(de)相关程度进(jìn)行评级(jí)。Google用许多参数进行评级。这当中PR算法是众所周知的(de)。PageRank评估两个因素:有多(duō)少个网页链接到这个网页,这些链接网页的(de)网站的质量如(rú)何。通过PageRank,五六个高质量的站点的链接,比如www.cnn.com和www.nytimes.com比其他较差的网站的链接(jiē)要有价值的多。
但(dàn)是除了(le)PageRank,我们还用许多其它的参数来进行(háng)评(píng)级。例如,如果一个文件包(bāo)含“国内”和“战争”这两个词排在一起,这个文件可能比一个讨论革命战争的文件(在文件的(de)某个地方使用“国内”)的相关(guān)程度高。还比如(rú)假设(shè)一个网页(yè)的标题是(shì)“国(guó)内(nèi)战争(zhēng)”,比(bǐ)另一个标题为“19世纪美国(guó)服装”的网页相(xiàng)关度高得多(duō)。同(tóng)样的,如果“国内战争”在网页(yè)中出(chū)现多次的网页比只出现(xiàn)一(yī)个(gè)的网页相(xiàng)关的(de)程度也要(yào)高。假设你是搜(sōu)索引擎,选择一(yī)个词查询,比如:国(guó)内战争或回收,在Google上查询(xún),从(cóng)结果(guǒ)中挑选三到四页打印出来。从每(měi)一张(zhāng)打印的页面上找出(chū)你的搜索语句的每一个字然后用荧光笔标出来,然后把这几页贴在墙上(shàng),退后几步眯(mī)着(zhe)眼看,当(dāng)你不知道页面的内(nèi)容,仅仅能(néng)看到那些有颜色的方块,你(nǐ)认为那(nà)一页是最相关的呢?是不是有着大的标题(tí)和(hé)多次重复出现的颜色代表了较高的相关程度?你喜(xǐ)欢这些(xiē)字(zì)出现在顶(dǐng)端还(hái)是底部?这些字出现的频率(lǜ)如何?这也(yě)是(shì)搜索(suǒ)引擎如何判断网页的相关程度。
原则上,Google总是试(shì)图找出可靠的和相关的网页。如果两个网页按照查询(xún)的语(yǔ)句大(dà)致有相同(tóng)的信息(xī),Google通(tōng)常选择比较信得过的(de)网站的(de)网页。当(dāng)然,如果有一些因(yīn)素表(biǎo)明这(zhè)个网站的(de)网页相关度更高,Google经常也选(xuǎn)择(zé)PageRank较低的(de)网站。
一旦Google完成了文件的列(liè)表和它们的评分,就给出得(dé)分最高的网页。Google同时从网页中摘(zhāi)录一小段(duàn)包(bāo)含查询的关键词的句子(zǐ);给出网页的链(liàn)接。
对于这样(yàng)的搜索工(gōng)作,需要极大的数(shù)据运算量,一般(bān)说来,对(duì)于某(mǒu)个搜索,要(yào)有超过500台的服务器协同工作以求(qiú)得最佳(jiā)匹配(pèi)的结果,当(dāng)然,结果会在半秒(miǎo)内返回用户。 |
|