2013-07-20 84 views
2

当用Google搜索某个词时,我们被告知我们看到了k个数字中的10个结果。 I.e第10000个结果中的第1个结果。 我们可以直接跳到第50-60个结果,Google会在不到一秒的时间内返回结果。 如果谷歌会缓存所有的1-40,我想这会浪费内存。如果它会立即返回所有结果,则会浪费流量。 谷歌在对它们进行排序时如何返回如此多的搜索结果?谷歌如何返回如此多的搜索结果?

+0

这个问题似乎是题外话,因为它不是关于编程 –

+1

说这个问题不是关于编程是说在配方上的问题不是关于食物。 –

+0

@JohnConde那么为什么SO上的架构标签? – rahulserver

回答

2

这里是我尝试: 对于谷歌搜索:

谷歌搜索引擎是如何工作的

这里是发送到服务器的网址:

https://www.google.co.in/?gws_rd=cr#gs_rn=20&gs_ri=psy-ab&tok=v1e-J_ynDKaPw_oDlFH-HA&cp=30&gs_id=8&xhr=t&q=how+google+search+engine+works&es_nrs=true&pf=p&output=search&sclient=psy-ab&oq=how+google+search+engine+works&gs_l=&pbx=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.49478099,d.bmk&fp=56e0e38cda57afa7&biw=1280&bih=899 

而且如果我选择页面底部的第5页链接,则这是正在发送的网址:

https://www.google.co.in/?gws_rd=cr#q=how+google+search+engine+works&ei=qm3qUeXSA4LqrAfXtYDoCg&sqi=2&start=40&sa=N&bav=on.2,or.r_cp.r_qf.&bvm=bv.49478099%2Cd.bmk%2Cpv.xjs.s.en_US.c75bKy5EQ0A.O&fp=56e0e38cda57afa7&biw=1280&bih=899 

请注意这里的附加start=40&sa=N参数。

所以我打算直通google search enging working步骤3,谷歌有自己超过30万亿的网页指数2之后的感觉和每个查询他们使用200多个因素的排名结果。所以我觉得参数startsa在获取结果时会形成这些因素之一。

因此,我认为谷歌没有缓存结果,但使用不同的url参数进行每个查询的新搜索。

编辑:

为了进一步支持我的观察,这里是采取导航上面的搜索查询的不同页面的时间列表:

  1. 第一页:157,000,000 results (0.22 seconds)
  2. For page 5:Page 5 of about 157,000,000 results (0.26 seconds)
  3. For page 10:Page 10 of about 157,000,000 results (0.30 seconds)

  4. 对于14页:Page 14 of about 157,000,000 results (0.33 seconds)

  5. 对于18页:Page 18 of about 157,000,000 results (0.38 seconds)
  6. 对于22页:Page 22 of about 157,000,000 results (0.35 seconds)
  7. 对于26页:Page 26 of about 157,000,000 results (0.43 seconds)
  8. 对于30页:Page 30 of about 157,000,000 results (0.45 seconds)
  9. 对于34页:Page 34 of about 157,000,000 results (0.40 seconds)
  10. For Page 38:Page 38 of about 371 results (0.50 seconds)

因此,增加查询页码的时间几乎在增加。如果它缓存结果,上面就不会是趋势。

+0

欲了解更多信息,谷歌的DAAT和TAAT算法检索顶部k的结果。 (我后来发现它)。 –