当我在Windows 7或Windows XP中的HD上搜索文件时,需要几分钟才能完成该过程。如果我在Google中填写搜索字词,则答案以毫秒为单位显示在屏幕上
Google如何搜索比我的硬盘驱动器大很多倍,比操作系统搜索我的计算机快的Internet?仅仅是计算能力和正确算法的问题吗?
当我在Windows 7或Windows XP中的HD上搜索文件时,需要几分钟才能完成该过程。如果我在Google中填写搜索字词,则答案以毫秒为单位显示在屏幕上
Google如何搜索比我的硬盘驱动器大很多倍,比操作系统搜索我的计算机快的Internet?仅仅是计算能力和正确算法的问题吗?
Answers:
Google不在搜索互联网:它正在搜索索引。Google拥有庞大的服务器场,这些服务器场正在不断扫描和索引互联网。该过程需要很多时间,就像搜索未索引的硬盘驱动器一样。在Windows 7中,有一个索引硬盘的选项。这个过程最初需要一些时间,但是一旦启动并运行,搜索结果将立即生效。
如果您想了解更多关于谷歌搜索是如何工作的,你可以阅读谷歌的文章“ 搜索工作原理 ”或阅读文章“ 的东西的工作原理:如何谷歌工程 ”。
Google的业务是搜索(并投放广告),并且非常专注于此。Google采取多种措施来确保将数据快速返回给您:
有关此搜索如何工作的更多信息,请参见此链接。
相对而言,没有索引的硬盘搜索必须读取驱动器上的每个文件,这会花费很多时间。
另外,您可以将文件系统和索引都视为树。在文件系统中,树的根是顶级文件夹,并且该文件夹中可以有分支(文件夹)或叶子(文件)。每个分支可以具有用于更多文件夹的子分支,而可以具有用于更多文件的分支。要搜索此结构,您必须“遍历”所有分支(和子分支)以找到所需的叶子。索引使该层次结构翻转。基数成为字母,并且所有子分支都对此进行进一步细化。叶子是您要寻找的物品的位置。搜索此结构可修剪(排除)大片树(例如,搜索词的第一个字母可让您立即修剪其他25个分支)。
大约4年前,我也问过自己同样的问题。但是当我搜寻研究时,我最终读到了这句话,除了他们聘请最好的人来提出一些最复杂的搜索算法之外,还有其他所有东西。
他们使用的关键设计之一类似于我认为的map reduce的想法。您在农场中有很多便宜的计算机。让这些计算机仅具有约80 gig的硬盘空间,并努力使这些计算机上具有约16 gig RAM或更好的32 gig RAM(尽可能多)。请记住,它们是通过他们设计的复杂系统连接的。但是这里的关键思想是,当提交查询时,它将被传递到他们的系统中,在该系统中它将尝试搜索RAM中的新数据。请记住,他们有很多这样的廉价计算机。而且由于数据在RAM中,因此发现它的速度比硬盘上的速度快得多。但是不要忘了他们也有一个复杂的(索引和所有这些算法)系统,它们对您有很大帮助。
而且这些数据不必是新鲜的,因为我们都知道Google存储了所有数据。因此,对于RAM中应该包含的内容,可以使用与展开树相同的原理,保持人们在RAM中搜索最多的内容,并将搜索最少的内容冲洗到硬盘上。
这个小想法加上他们的索引以及其他人在答案中提到的所有其他内容,可能是它比硬盘搜索更快的原因之一。
我当然可能错了,但这对我来说很有意义。我对所学的知识感到满意。
我以为我会补充一点,因为不久前我也有这个问题,并且发现了这些很棒的视频,它们描述了Google在表面上的所作所为。有趣的观看。
Google on Youtube 1
Google on Youtube 2
他走得更深,但不够深,以至于您迷失了技术。
干杯。
要简单地回答这个问题:假设您有一本教科书的背面带有关键字索引。
搜索硬盘(至少天真的)就像逐页浏览书本,扫描每一行以查找关键字。
使用Internet搜索引擎就像在索引中查找关键字,然后直接转到其给出的页码。
当然,实际上,这要复杂得多。例如,您通常会在硬盘上搜索与Internet不同类型的信息。但是最基本的是搜索引擎正在使用索引。它已经逐字逐句地浏览过“书”,并且已经汇编了这些单词以及在哪里可以找到它们的列表,并且以一种可以快速查找其中内容的方式组织了该列表。 。
例如,考虑一本书中索引的组织。首先,它通常按字母顺序排序,其次,它可能具有字母标题。在索引中查找单词时,您会立即看到以所需字母开头的单词列表。而且由于列表是经过排序的,因此很容易在列表中找到您想要的单词,也可以快速告诉您是否缺少该单词。
总而言之,就像您的硬盘上只有一本书,而搜索引擎上却有索引。尽管正如其他人指出的那样,可以使用软件对硬盘进行索引,然后可以使用索引而不是整个索引。