140 likes | 246 Views
Motori di Ricerca presente e futuro prossimo. Cosa è un motore di ricerca ?. Un lavoro storico: Brin & Page [1998]. ?. Archivio Pagine. Crawler. Web. Analizzatore pagine. Indicizzatore. Risolutore. Analizzatore Rilevanza. Controllo. Testo. Utilità. Struttura.
E N D
Motori di Ricercapresente e futuro prossimo Cosa è un motore di ricerca ? Paolo Ferragina, Università di Pisa
Un lavoro storico: Brin & Page [1998] Paolo Ferragina, Università di Pisa
? Archivio Pagine Crawler Web Analizzatore pagine Indicizzatore Risolutore Analizzatore Rilevanza Controllo Testo Utilità Struttura Motore di Ricerca: struttura Query Paolo Ferragina, Università di Pisa
Il Web • “Surface Web”: 25 ÷ 75 Terabytes (1Tb = 1000 Gb) • 6 miliardi di pagine (cambiano circa 10 milioni al giorno) • Pagina in media 5 ÷ 40Kb, #links ~ 10 • Circa il 23% delle pagine è duplicato • “Hidden Web”: circa 500 volte più grande • Siti intranet, database, pagine dinamiche,… • Circa 4,200 Tb di dati testuali interessanti Paolo Ferragina, Università di Pisa
Una immagine pittorica del Web Paolo Ferragina, Università di Pisa
Alcuni dati Paolo Ferragina, Università di Pisa
Velocità di cambiamento [snapshot settimanale nel 2004: 154 web sites, 35 mil pg, 65Gb] Normalizzata rispetto prima settimana Paolo Ferragina, Università di Pisa
Motori di Ricercapresente e futuro prossimo Cosa è un crawler ? Paolo Ferragina, Università di Pisa
Fase di Crawling • Numerosi problemi di progettazione: • Copertura: Quali pagine occorre visitare ? • Aggiornamento: Quanto spesso occorre visitarle ? • Invadenza: Come minimizzare il carico dei siti visitati ? • Efficienza: Come parallelizzare il processo di “crawling” ? • Scalabilità: Come gestire il “flusso” di pagine ? Paolo Ferragina, Università di Pisa
“Ciclo di vita” di un Crawler Downloader while(<ci sono link assegnati dal Manager>){ <estrai i link> <scarica le pagine pidalla rete> <invia le pi al page repository> } Link Extractor while(<ci sono pagine da esaminare nel repository>){ <prendi una pagina p> <estrai i link contenuti in essa> <inserisci i link estratti in una coda, ciascuno con una priorità dipendente dalla politica scelta> <marca p come pagina da cui abbiamo estratto i link> } Crawler Manager <estrai un gruppo di link dalla coda in ordine di priorità> while(<ci sono link nel gruppo>){ foreach link u { if ( (u “pagine già viste” ) || ( u “pagine già viste” && <sul Web server la pagina è più recente> ) && ( <u è un link accettato dal robot.txt del sito>) ) { <risolvi u rispetto al DNS> <invia u alla coda dei downloaders> } } Paolo Ferragina, Università di Pisa
Politica di selezione delle pagine • Data una pagina P, definire quanto sia “buona”. • Esistono molte metriche: • Guidate dal topic coperto dal motore • Guidate dalla popolarità • BFS, DFS, Random • Strategie combinate 4 7 7 6 3 5 1 1 6 4 2 2 BFS 5 3 DFS Paolo Ferragina, Università di Pisa
Raggiungimento di pagine interessanti Paolo Ferragina, Università di Pisa
Alcuni risultati Paolo Ferragina, Università di Pisa
Focused Crawling • Si scelgono selettivamente le pagine sulle quali continuare la visita, in accordo a un insieme di topic rilevanti definiti apriori. • I topic sono specificati mediante documenti campione • I topic sono specificati mediante indirizzi • Risparmio di risorse di rete e di hardware. • Esempi di crawler open-source • Nutch, also used by Yahoo • Hentrix, used by Archive.org Paolo Ferragina, Università di Pisa