Arn*_*rne 257 windows hard-drive google-search windows-search
当我在 Windows 7 或 Windows XP 中搜索 HD 上的文件时,完成该过程需要几分钟时间。如果我在 Google 中填写搜索词,答案会以毫秒为单位显示在我的屏幕上
Google 怎么可能搜索互联网,它比我的硬盘大很多倍,速度比我的操作系统搜索我的电脑快?仅仅是计算能力和正确算法的问题吗?
Sim*_*mon 215
谷歌不是在搜索互联网:它是在搜索索引。谷歌拥有庞大的服务器群,它们不断地扫描和索引互联网。这个过程需要很多时间,就像搜索未编入索引的硬盘一样。在 Windows 7 中,有一个选项可以为您的硬盘驱动器编制索引。这个过程起初需要一些时间,但一旦启动并运行搜索结果将是即时的。
如果您想更多了解谷歌搜索是如何工作的,你可以阅读谷歌的文章“搜索工作原理”或阅读文章“如何工作的:谷歌如何作品”。
小智 72
Google 就像在黄页中搜索地址(已编入索引)。Windows 搜索类似于检查建筑物上的数字(未编入索引)。
另一个类比是浏览组织良好的图书馆和卡片目录,或者每次只是整理一堆杂乱无章的书籍。
从根本上说,是在搜索之前完成的所有组织工作使其快速。
仅供参考:在搜索索引位置时,Windows 搜索的响应速度相同。
Bra*_*ton 36
Google 的业务是搜索(和提供广告),并且非常专注于此。Google 采取了许多措施来确保数据快速返回给您:
有关搜索工作原理的更多信息,请参阅此链接
相比之下,没有索引的硬盘搜索必须通读驱动器上的每个文件,这可能需要很多时间。
此外,您可以将文件系统和索引都视为一棵树。在文件系统中,树的根是顶级文件夹,在该文件夹中可以有分支(文件夹)或叶子(文件)。每个分支可以有更多文件夹的子分支和更多文件的叶子。要搜索此结构,您必须“走”所有分支(和子分支)以找到您要查找的叶子。索引翻转了这个层次结构。基础成为字母表,所有的子分支都在此基础上进一步改进。叶子是您要查找的项目的位置。搜索此结构可让您修剪(排除)树的大部分(例如,搜索词的第一个字母可让您立即修剪 25 个其他分支)。
Tou*_*uch 30
大约 4 年前,我也问过自己同样的问题。但是当我在 google 周围做我的研究时,我最终读到了这样一个事实,除了他们聘请了最优秀的人来提出一些最复杂的搜索算法等等。
他们使用的关键设计之一类似于我认为的 map reduce 的想法。你在农场有很多便宜的电脑。让这些计算机只有大约 80 gig 的硬盘空间,并努力在这些计算机上拥有大约 16 gig RAM 甚至更好的 32 gig RAM(尽可能多)。请记住,它们是通过他们设计的一些复杂系统连接起来的。但这里的关键思想是,当提交查询时,它会被传递到他们的系统中,在那里它会尝试在 RAM 中搜索新数据。请记住,他们有很多这样的廉价电脑。而且由于数据在 RAM 中,因此它比在硬盘上发现要快得多。但是不要忘记他们也有一个复杂的(索引和所有这些算法)系统,这很有帮助。
而且这些数据不一定是新鲜的,因为我们都知道 Google 会存储所有内容。至于应该在RAM中的内容,可以使用与展开树相同的原则,将人们搜索最多的内容保留在RAM中,并将搜索最少的内容刷新到硬盘。
这个小想法加上他们的索引以及其他人在他们的答案中提到的所有其他事情,可能是它比硬盘驱动器搜索更快的原因之一。
当然我可能是错的,但这对我来说是有道理的。我对我学到的东西很满意。
| 归档时间: |
|
| 查看次数: |
34951 次 |
| 最近记录: |