L’idea del calcolo distribuito, già sfruttata da molti progetti come SETI@home peraw la Ricerca di Intelligenze ExtraTerrestri e da altri progetti come la ricerca sul cancro e lo studio della struttura delle proteine umane è da qualche tempo approdata anche nel campo dei motori di ricerca.
La potenza di calcolo distribuita messa a disposizione da tante persone sparse negli angoli più remoti del pianeta è infatti molto utile in un settore dove il numero di pagine web è in continua crescita (si stima che i circa 10 miliardi di pagine attualmente indicizzati da google siano solo il 10% del totale esistente).
Segnaliamo i progetti di maggiore interesse in questo campo:
nutch.org (free software scritto in java che ora si è unito ai progetti dell’Apache Incubator)
Nutch
Majestic12 (progetto inglese che non è software libero ma che rende disponibili client per linux e windows)
Majestic12
Questi progetti si occupano della cosidetta fase di crawling (o spidering) cioè al reperimento delle pagine, ma un motore di ricerca è costituito da altre parti fondamentali. In particolare:
- Crawler o spider cioè software che trovano e prelevano pagine web e costruiscono una lista di keyword e frasi a partire dalle pagine reperite
- L’indice vero e proprio del motore (database) che contiene le parole e frasi prelevate dai crawler.
Il sofware che si occupa di popolare l’indice viene chiamato solitamente indexer - Il cosiddetto “query processor” ossia la parte che si occupa di processare le richieste immesse dall’utente nel campo di ricerca e confrontarle con le informazioni presenti nell’indice del motore.
E’ questa la parte in cui maggiormente differiscono i vari motori di ricerca: l’algoritmo di confronto fra richieste utente e pagine presenti all’interno dell’ indice
Se si tiene conto che stime del 2004 attribuivano al motore di ricerca Google un numero di computer compreso fra i 10000 e 80000 si può ben comprendere quale sia le risorse necessarie ad un motore di ricerca.
L’approccio distribuito è sicuramente molto interessante per la fase di spidering delle pagine ma come affrontare la necessitò di risorse (hardware e software) necessarie all’indexer e al query processor ?