Paolo Ferragina, Università di Pisa Motori di Ricerca presente e futuro prossimo Cosa è un motore...

Post on 02-May-2015

217 views 0 download

Transcript of Paolo Ferragina, Università di Pisa Motori di Ricerca presente e futuro prossimo Cosa è un motore...

Paolo Ferragina, Università di Pisa

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

Motore di Ricerca: struttura W

eb

Crawler

Archivio Pagine

Analizzatorepagine

Controllo

Query

Risolutore

?

AnalizzatoreRilevanza

TestoStruttura

Utilità

Indicizzatore

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]

Normalizzatarispetto 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

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>}

Downloader

while(<ci sono link assegnati dal Manager>){

<estrai i link>

<scarica le pagine pi dalla rete>

<invia le pi al page repository>}

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>

} }

“Ciclo di vita” di un Crawler

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

1

2

3

4

5

6

7

1

2

3

4

56

7

BFSDFS

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