Come funziona un motore di ricerca?

Il funzionamento specifico di ciascun motore di ricerca, e sto parlando in questo caso di complessi e strutturati motori di ricerca come Google, MSN e Yahoo e non il motore di ricerca di un forum, è un segreto che ogni azienda custodisce gelosamente. Salvo chi lo ha creato, non è possibile conoscere con precisione ed a fondo le caratteristiche degli algoritmi di un motore di ricerca e la natura dei calcoli eseguiti.

Esistono però alcune caratteristiche fondamentali di un motore di ricerca professionale imprescindibili dall’azienda e dagli algoritmi specifici. Alcuni dettagli legati al funzionamento che sono noti e consolidati ma che spesso non rientrano nel bagaglio culturale di quanti si avvicinano per le prime volte allo studio ed alla progettazione di questo tipo di architetture. In questo articolo vedremo quindi in linea teorica quali sono le fasi principali dell’indicizzazione di un documento da parte di un motore di ricerca comune.

Nel campo dei motori di ricerca 3 sono le fasi fondamentali nel processo di indicizzazione.

  1. Scansione del web e salvataggio dei documenti: crawling.
  2. Creazione dell’indice di ricerca: indexing.
  3. Analisi dell’indice, valutazione dei risultati e visualizzazione nelle query: ranking.

Le precedenti sono grossomodo le 3 principali fasi di un motore di ricerca che abbia come obiettivo la gestione di un numero sufficientemente alto di dati.

Le caratteristiche ed i dettagli di ogni singolo procedimento possono differire notevolmente in base all’architettura del motore di ricerca e non è da escludere che alcuni possano prevedere ulteriori fasi.

Crawling

Il crawling è un processo estremamente meccanico grazie al quale un motore di ricerca recupera i dati necessari per costruire il suo indice. Per eseguire il crawling sono utilizzati appositi programmi, chiamati di norma spider, bot o più semplicemente crawler, che scandagliano il web alla ricerca di pagine.

Il crawler scarica i documenti sui computer per consentire un processo di indexing più rapido ed efficace. In questa fase lo spider, nella maggior parte delle volte, non si limita a salvare solo le pagine ma raccoglie una serie di informazioni correlate ed utili per autoalimentare la sua coda di documenti.

Durante le scansioni il crawler salva in una sua memoria la lista di nuovi URL identificati durante il salvataggio delle pagine. Su questo grande taccuino lo spider annota sapientemente tutti i link che in futuro potrebbe dover seguire. Saranno poi i progettisti ad indicare allo spider quali link seguire ed in quali modalità.

Il processo di raccolta dei link, estremamente banalizzato in precedenza, è in realtà decisamente complesso. È necessario progettare con maestria lo spider per evitare che lo stesso cada in processi di link che incastrerebbero il crawler in un ciclo infinito.

Allo stesso tempo è fondamentale che lo spider raccolga questi link poiché garantisce al motore di ricerca di autoalimentare sé stesso senza apparente bisogno di fornire manualmente nuove risorse. È infatti ipotizzabile che passando da un sito all’altro sia possibile scandagliare almeno il 95% dell’intero world wide web.

Indexing

I dati scaricati dallo spider non sono immediatamente disponibili per le ricerche.

Come mai, verrebbe da chiedersi. Costruire un motore di ricerca è semplice, basta creare un sistema che cerchi le kwyword all’interno di un enorme database delle pagine scaricate, potrebbe sostenere qualcuno.

È vero, in effetti banalizzando un motore di ricerca è proprio questo, tuttavia una ricerca fulltext all’interno di un database, così si chiama in gergo, è fattibile solo nel caso in cui i dati siano relativamente limitati. Maggiore è il numero di dati nel database, in gergo record, maggiore è la lentezza e le risorse richieste per l’analisi tanto che una semplice query potrebbe impegare nel caso di Google anche qualche giorno a dare il risultato.

Non è la scelta giusta! Come procedere allora? In questo caso è necessario costruire un indice, ovvero un sommario che dica al lettore dove trovare le informazioni desiderate ed in quale ordine. Immaginate che il lettore sia il sistema del motore di ricerca che deve assolutamente analizzare e restituire all’utente una risposta alla sua domanda nel più breve tempo possibile.

Creare un indice è un processo banale, creare un indice organizzato coerentemente non lo è. Per velocizzare il più possibile questa fase entra in gioco il vantaggio che lavorare in locale è estremamente più performante che lavorare live. Questo è uno dei motivi del crawling.

Terminato l’indice il motore di ricerca sarebbe già in grado di dirvi quali pagine rispondono ai risultati della ricerca da voi digitata, tuttavia non è ancora capace di ordinarvi tali informazioni secondo criteri di qualità. I dati in suo possesso sono solo quelli oggettivi come la data di creazione del documento, quella di salvataggio o il peso delle keyword.

È quindi necessaria la fase finale, l’assegnazione di un valore a ciascun risultato.

Ranking

L’attività di ranking è uno tra i processi più complicati nella creazione di un motore di ricerca.

A questo punto si ha a disposizione un indice, molti dati e molti contenuti ed è necessario rivalutare quell’indice per assegnare a ciascun elemento che lo compone un valore di qualità. Quale valore, come viene assegnato e su quale scala sono solo alcuni tra i concetti fondamentali che ogni sviluppatore di un motore di ricerca deve tenere conto a questo punto e probabilmente i primi fattori che non saranno resti pubblici esternamente per evitare fenomeni di SPAM.

Alcuni motori basano parte del calcolo affidandosi ai link in ingresso, altri alla collocazione della keyword nel testo, altri ancora alla sua frequenza all’interno del documento.

Terminato questo processo i dati sono pronti per essere mostrati al pubblico. A seconda della quantità di informazioni disponibili potrebbe essere necessario un ulteriore lasso di tempo per l’aggiornamento di tutti i database correlati al motore, come ad esempio avviene nel caso di Google in quel periodo chiamato allineamento dei datacenter.

Finito? Non proprio. I punti sopra descritti non hanno un termine stabilito ma verranno ripetuti all’infinito fin tanto che i dati da analizzare cambiano e si rinnovano.

3 Risposte

  1. Bravissimo!!!
    Diciamo che lo capito piu o meno!!!!!😀 saluti da http://www.logodle.com

  2. Ma se volessi costruirne uno da dove dovrei partire?
    E legalmente cosa dovrei fare?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: