当谷歌搜索一段时间时,我们被告知我们看到k的10个结果中有数千个。即万分之一的第1-10名结果。 我们可以跳到50-60结果,谷歌将在不到一秒的时间内返回。 如果google会缓存所有的1-40,我想这会浪费RAM。如果它会立即返回所有结果,则会浪费流量。 Google如何在对其进行排序时返回如此多的搜索结果?
答案 0 :(得分:2)
这是我尝试过的东西: 对于谷歌搜索:
Google搜索引擎如何运作
以下是发送到服务器的网址:
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第2步(3)后谷歌拥有超过<30万个网页的索引,我感觉如何,对于每个查询,他们使用200多个因素对结果进行排名。所以我觉得start
和sa
参数在获取结果时形成了其中一个因素。
因此我的观点是谷歌没有缓存结果,而是使用不同的url参数对每个查询进行新的搜索。
修改强>
为了进一步支持我的观察,这里是导航到上述搜索查询的不同页面所花费的时间列表:
157,000,000 results (0.22 seconds)
Page 5 of about 157,000,000 results (0.26 seconds)
第10页:Page 10 of about 157,000,000 results (0.30 seconds)
第14页:Page 14 of about 157,000,000 results (0.33 seconds)
Page 18 of about 157,000,000 results (0.38 seconds)
Page 22 of about 157,000,000 results (0.35 seconds)
Page 26 of about 157,000,000 results (0.43 seconds)
Page 30 of about 157,000,000 results (0.45 seconds)
Page 34 of about 157,000,000 results (0.40 seconds)
Page 38 of about 371 results (0.50 seconds)
因此,增加查询页数的时间几乎在增加。如果它是缓存结果,上面不会是趋势。