activo | asset management system

Saturday, March 31, 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.

Komentar Terbaru