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