Fork me on GitHub

Come funziona Google

Se non siete interessati a sapere come Google crea l'index ed il database dei documenti a cui accede quando processa una query, saltte questo capitolo. Ho adattato la seguente panoramica dalla meravigliosa descrizione di Chris Sherman e Gary Price su ""How Search Engines Work" nel capitolo 2 di The Invisible Web.

Google è eseguito su una rete distribuita di migliaia di calcolatori a basso costo che permette una veloce elaborazione di richieste parallele. Il "parallel processing" è un metodo computazionale in cui i calcoli possono essere performati simultaneamente, velocizzando significativamente l'elaborazione dei dati. Google ha tre parti distinte:

  • Googlebot, un web crawler che trova e recupera le pagine web.
  • L'indexer che ordina ogni parola su ogni pagina e salva i risultati in un indice di parole in un enorme database.
  • Il processore di query, che compara le vostre ricerche nell'indice e consiglia i documenti che considera più rilevanti.

Diamo un occhiata ravvicinata di ogni parte.

1.Googlebot, il Web Crawler diGoogle

Googlebot è il robot di Google che si occupa di ispezionare le pagine del web, esso trova e recupera le pagine nel web e le consegna al Google indexer. E' facile immaginare il Googlebot come un piccolo ragno che corre velocemente attraverso i fili del cyber spazio, ma in realtà Googlebot non attraversa affatto il web. Esso funziona più come il vostro navigatore web, spedendo una richiesta ad un web server per una pagina web, scaricando l'intera pagina, e quindi passandola all'indexer di Google.

Googlebot è fatto da molti computer che richiedono e recuperano pagine molto più velocemente di come potreste fare con un web browser. Infatti, Googlebot può richiedere migliaia di pagine web simultaneamente. Per evitare di affaticare eccessivamente i web server, o sovraffollare le richieste provenienti da utenti umani, Googlebot deliberatamente fa richieste a ciascun web server più lentamente di quanto sia capace.

Googlebot trova le pagine in due modi: attraverso un form di aggiunta URL,www.google.it/addurl.html, e mediante la rilevazione dei links durante la lettura delle pagine web web (benchè ancora disponibile per gli utenti italiani, tale pagina è stata rimossa da Google in lingua inglese, ed integrata nella pagina webmaster tools, n.d.t.).

![Screen shot of web page for adding a URL to Google.]

Sfortunatamente, gli spammers hanno trovato il modo di creare bots automatizzati che bombardano il form di aggiunta URL con milioni di URL che puntano a propaganda commerciale. Google rigetta questi URL inviati mediante il form di aggiunta URL sospetti di fuorviare gli utenti utilizzando tattiche quali testo nascosto o pile di links verso una pagina, riempire una pagina di parole irrilevanti, cloaking (aka mordi e cambia), usando subdoli redirects, creando portali, domini, o sub-domini con contenuti sostanzialmente uguali, che spediscono richieste automatizzate a Google, e linking siti maliziosi. Perciò ora il form di aggiunta URL possiede anche un test: esso mostra alcune lettere distorte per far impazzire gli script automatizzati “indovina-caratteri”; vi chiede di trascrivere le lettere che vedete - qualcosa tipo un riconoscimento visivo per fermare gli spambots.

Quando Googlebot recupera una pagina, batte tutti i links che appaiono nella pagina e li aggiunge ad una coda per il successivo recupero. Googlebot tende ad incontrare un po di spam perché molti autori del web collegano solo ciò che ritengono siano pagine di alta qualità. Raccogliendo links da ogni pagina che incontra, Googlebot può velocemente costruire un elenco di links che possono coprire un ampia parte del web. Questa tecnica, conosciuta come deep crawling, permette inoltre a Googlebot di verificare la profondità per ciascun sito. A causa della loro vasta scala, i deep crawl possono raggiungere praticamente quasi tutte le pagine del web. A causa della vastità del web, puo volerci diverso tempo, cosicchè certe pagine possono essere scansite solo una volta al mese.

Nonostante il suo funzionamento sia semplice, Googlebot deve essere programmato per gestire diverse sfide. Primo, poiché Googlebot invia richieste simultanee per migliaia di pagine, la coda degli URL da “visitare al più presto” deve essere costantemente esaminata e comparata con gli URL già presenti nell'indice di Google. I duplicati nella coda debbono essere eliminati per prevenire che Googlebot recuperi nuovamente la medesima pagina. Googlebot deve determinare quanto spesso rivisitare una pagina. Da una parte, è uno spreco di risorse re-indicizzare una pagina non cambiata. Dall'altra, Google vuole re-indicizzare le pagine mutate per fornire risultati aggiornati.

Per mantenera l'indice aggiornato, Google riesamina continuamente le pagine web più popolari che cambiano più di frequente con una frequenza proporzionale alla velocità dei cambiamenti. Questi aggiornamenti rendono l'indice attuale e sono meglio noti comefresh crawls. Le pagine dei giornali sono scaricate giornalmente, le pagine di quotazione dei titoli sono scansite più frequentemente. Naturalmente, i fresh crawls restituiscono meno pagine di un esame approfondito (deep crawl). La combinazione dei due tipi di esame permette a Google di mantenere l'indice aggiornato e di risparmiare risorse in modo ragionevole.

2. L'indicizzatore di Google’s

Googlebot fornisce all'indicizzatore il testo completo delle pagine che esamina. Queste pagine sono registrate nel database dell'indice di Google. Questo indice è ordinato alfabeticamente per termine di ricerca, per ogni termine dell'indice sono associati una serie di documenti in cui appaiono i termini e la locazione dove il testo è individuato. Questa struttura di dati permette un accesso rapido ai documenti che contengono i termini di ricerca utente .

Per migliorare le prestazioni delle ricerche, Google ignora (non indicizza) le parole comuni chiamatestop words(comeil,è,su,o, di,come,perché, come anche certi singoli caratteri o lettere). Le stop words sono così comuni che sono poco significative per raffinare una ricerca, perciò possono essere tranquillamente scartate. L' indexer ignora anche alcune puntualizzazioni e spazi multipli, oltre a convertire tutti i testi in lettere minuscole, per migliorare le prestazioni di Google.

3. Il processore di query di Google

Il processore di query è composto da diverse parti, inclusa l'interfaccia utente (il campo di ricerca), l'“engine” che valuta le interrogazioni e trova i riscontri nei documenti più rilevanti, ed il formattatore dei risultati.

PageRankè il sistema di Google per dare una graduatoria alle pagine web. Una pagina con un PageRank più elevato è considerata più importante e sarà probabilmente posta più in altro rispetto ad una pagina con un PageRank inferiore.

Google considera oltre cento fattori per estrapolare il suo PageRank e determinare quali documenti sono più rilevanti per un interrogazione, inclusa la popolarità della pagina, la posizione ed il numero dei termini di ricerca all'interno della pagina, e la prossimità frai termini di ricerca nella pagina.Un applicazione sui brevettienumera altri fattori che Google considera quando formula il rank di una pagina. VisitateSEOmoz.org’s reportper un interpretazione sui concetti e l'applicazione pratica contenuta nell'applicativo brevettato da Google.

Google applica anche tecniche di apprendimento-macchina per migliorare automaticamente le sue prestazioni imparando le relazioni e le associazioni frai dati immagazzinati. Ad esempio, ilsistema di correzione ortograficausa queste tecniche per suggerire parole alternative. Google presta molta attenzione alle formule impiegate per calcolare la rilevanza; essi sono adattati per migliorare la qualità e le prestazioni, ed evitare le tecniche devianti degli spammers.

Indicizzare tutto il testo del web permette a Google di andare oltre il semplice riscontro dei termini di ricerca. Google da più priorità alle pagine che hanno termini vicini fra loro e nello stesso ordine dell'interrogazione. Google può anche trovare corrispondenze con parole multiple frasi e sentenze. Poiché Google indicizza il codice HTML oltre al testo della pagina, gli utenti possono restringere le ricerche sulla base di dove le parole delle interrogazioni compaiono, es., nel titolo, nell'URL, nel body, e nei link della pagina, opzioni offerte dalform di ricerca avanzata di GoogleedUsando gli Operatori Avanzati.

Vediamo come Google processa un'interrogazione.

![1. The web server sends the query to the index servers. The content inside the index servers is similar to the index in the back of a book--it tells which pages contain the words that match any particular query term. 2. The query travels to the doc servers, which actually retrieve the stored documents. Snippets are generated to describe each search result. 3. The search results are returned to the user in a fraction of a second.]

Per maggiori informazioni su come funziona Google, leggete i seguenti articoli.

[1. The web server sends the query to the index servers. The content inside the index servers is similar to the index in the back of a book--it tells which pages contain the words that match any particular query term. 2. The query travels to the doc servers, which actually retrieve the stored documents. Snippets are generated to describe each search result. 3. The search results are returned to the user in a fraction of a second.]: https://lh3.googleusercontent.com/-j062rkjhzxo/TxG8nPrdVRI/AAAAAAAAA1U/pw8MDWfiSPk/s400/GWJpg.png

Commenti !

blogroll

social