Motori di Ricerca presente e futuro prossimo

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

Downloaderwhile(<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

71

23

45

67

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

Recommended