![]() |
1
47
延迟被磁盘访问消除。因此,有理由相信用于回答查询的所有数据都保存在内存中。这意味着数千台服务器,每台服务器都复制多个碎片中的一个。因此,搜索的关键路径不太可能触及其旗舰分布式系统技术GFS、MapReduce或BigTable。这些将用于粗略地处理爬虫程序结果。 关于搜索,最方便的一点是,不需要有高度一致的结果或完全最新的数据,因此谷歌不会因为有了更为最新的搜索结果而被阻止响应查询。
|
![]() |
2
26
把它放在一个答案里有点太多了。 http://en.wikipedia.org/wiki/Google_platform |
![]() |
3
22
我一直觉得有趣的一个事实是,谷歌实际上是由生物信息学运营的(凯,我觉得这很有趣,因为我是一个生物信息学家)。让我解释一下。 早期的生物信息学面临着快速搜索巨大字符串中的小文本的挑战。对我们来说,这根巨大的绳子当然是DNA。通常不是单个DNA,而是来自不同物种/个体的多个DNA的数据库。小文本是蛋白质或它们的基因对应物,一种基因。计算生物学家最初的大部分工作仅限于寻找基因之间的同源性。这样做是为了通过注意与已知基因的相似性来确定新发现基因的功能。 现在,这些DNA串确实变得非常大,(有损!)搜索必须非常有效。因此,大多数现代字符串查找理论都是在计算生物学的背景下发展起来的。 然而,相当一段时间以前,传统的文本搜索已经用尽了。需要一种新的方法,允许在次线性时间内搜索大字符串,即不查看每个字符。人们发现,可以通过预处理大字符串并在其上构建特殊的索引数据结构来解决这一问题。已经提出了许多不同的此类数据结构。每种方法都有各自的优点和缺点,但有一种特别引人注目,因为它允许在固定时间内进行查找。现在,从谷歌运营的数量级来看,这不再是严格意义上的事实,因为必须考虑服务器间的负载平衡、预处理和其他一些复杂的东西。 但在本质上,所谓的 q-gram指数 允许以固定时间进行查找。唯一的缺点是:数据结构变得非常庞大。本质上,允许查找最多包含 Q 字符(因此得名),它需要一个表,该表的每个可能的字符组合都有一个字段 Q 字母(即, s 哪里 是字母表的大小,比如说36(=26+10))。此外,索引字符串中的每个字母位置都必须有一个字段(如果是google,则为每个网站)。 为了减少规模,谷歌可能会使用多个索引(事实上,它们 ,提供拼写更正等服务)。最上面的那些不会在字符级工作,而是在单词级工作。这减少了 Q s
长话短说,这些 Q -gram索引数据结构可以说是谷歌搜索算法中最核心的部分。不幸的是,没有很好的非技术性论文来解释这一点 Q -克指数起作用。据我所知,唯一一份描述这种索引工作原理的出版物是《我的 bachelor thesis . |
![]() |
4
5
以下是一些很好的答案和建议:
|
![]() |
5
4
他们已经在大量硬件上实现了良好的分布式算法。 |
![]() |
6
4
最重要的延迟之一是Web服务器将查询发送到Web服务器,然后返回响应。这种延迟受到光速的限制,连谷歌都必须遵守。然而,他们在世界各地都有数据中心。因此,到其中任何一个的平均距离都较低。这样可以降低延迟。当然,差异是以毫秒为单位测量的,但是如果响应必须在1000毫秒内到达,这很重要。 |
![]() |
7
4
哦,是的,还有Mapreduce。 |
![]() |
8
3
他们几乎在定制文件系统的数千台PC上缓存了互联网的本地副本。 |
![]() |
9
3
谷歌雇佣最好的人中的最好的。一些IT界最聪明的人在谷歌工作。他们几乎可以在硬件和工程师身上投入无限的资金。
他们拥有地理位置优越的服务器场。 |
![]() |
10
3
|
![]() |
11
2
你可以在 the google research homepage 一些关于谷歌的人写的研究论文的建议。你应该从解释这个问题开始 google file system 和 map/reduce algorithm 试图了解谷歌页面背后的情况。 |
![]() |
12
2
这个链接也提供了很多信息 Behind the scenes of a google query |
![]() |
13
1
硬件 很多很多硬件。他们使用大量的商用PC集群作为服务器场。 |
![]() |
14
1
|
![]() |
15
1
亨利可能是对的。 |
![]() |
16
1
|
![]() |
17
0
和 algorithms 这可以利用硬件的力量。喜欢 mapreduce |
![]() |
19
0
|
![]() |
Sweepy Dodo · JSON lite的格式化 5 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 6 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 6 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 10 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 10 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 10 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 10 月前 |