2013-07-20 64 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的結果。 (我後來發現它)。 –