Friday, March 30, 2012

Algoritma Google Search, hanya Tuhan dan Insiyurnya yang Tahu

Teknik searching Google itu bisa dibilang, hanya Tuhan dan insiyurnya yang tahu.

Lagi iseng melihat-lihat url yang dihasilkan oleh google, ternyata query string yang dihasilkan itu memiliki function yang cukup rumit.

Satu contoh, ketika mengecek url google search berikut:
https://www.google.com/#hl=en
gs_nf=1
tok=csFOWq7xRr5Ya666Xn1uiA
cp=5
gs_id=a4
xhr=t
q=car+show
pf=p
output=search
sclient=psy-ab
pbx=1
oq=carsh
aq=0s
aqi=g-s2g2
aql=
gs_sm=
gs_upl=
bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb
fp=fb2600dd7c563832
biw=1280
bih=593

Secara acak saya ambil salah satu query string yaitu gs_upl. Kemudian saya cek di Google arti dari gs_upl. Lalu saya diarahkan ke STACKOVERFLOW dan didapat penjelasan yang sangat rumit. Seseorang mengambil source code javascript yang ada dibalik html:

From the script that builds gs_upl (j) I found that:

function(){
   var b=a.R(),e="f";f.md()?e="o":d.na()&&(e=d.gf());
   var j="",o=f.sa();o&&(j=o.Ub());var l="";
   if(o=d.K()){
      for(var l={zd:[],$b:v,Ja:0},r=o.length,t=0,w;t<r;++t){
           w=t==r-1;var y=o[t],u=l,z=i.za(y.F()).Ha();(y=y.Wa())&&(z+="-"+y);
           if(z!=u.$b)
              u.Ja&&u.zd.push(u.$b,u.Ja),u.Ja=0,u.$b=z;
              ++u.Ja;w&&u.Ja&&u.zd.push(u.$b,u.Ja)}l=l.zd.join("")
      }
      b={oq:b,aq:e,aqi:l,aql:j
   }
   ;
   if(g.ub)
     j=Z()-q,
     j[c(a.Te()),c(a.Ue()),k,j,h.Of(),h.Nf(),h.dd(),h.ed(),
       h.Kf(),h.Mf(),h.Lf(),h.Qf(),h.Jf(),h.Pf(),c(a.Ve())]
       .join("l"),
   b.gs_upl=j;
   return b
}

--

Didalam satu function javascript memiliki banyak function-function lagi. Cara mengeceknya dengan melihat kode "()".

Google emang rumit.

No comments:

Post a Comment