76
di tenere costantemente aggiornato un indice di oltre due miliardi di
pagine web
7
.
4.1.2
Tecniche di indexing
Lattività di indexing consiste nellimmagazzinare e indicizzare
(mediante creazione di un indice ordinato) i dati e documenti scaricati
dal crawler, rendendoli disponibili per essere prelevati in tempo reale
e presentati in maniera ordinata nei risultati delle ricerche in risposta a
una query specifica. Lefficienza degli algoritmi di indexing è critica
per il buon funzionamento di un motore di ricerca: poiché lindexer
lavora tipicamente in parallelo al crawler, costruendo lindice a mano
a mano che i documenti vengono scaricati, la presenza di un collo di
bottiglia nelle procedure di indexing può influire negativamente
sullattività di crawling, rallentandola drasticamente.
La procedura complessa che va comunemente sotto il nome di in-
dexing si compone in realtà di tre sotto-procedure principali: parsing,
indexing e sorting. Il parsing consiste nellinterpretazione del contenu-
to restituito dal crawler, che può essere un documento HTML o in altri
formati. Il compito principale del parser è lestrazione delle parole
(keyword) e collegamenti (hyperlink) contenuti nel codice sorgente del
documento. Comprensibilmente, le tipologie di errori di sintassi che
un parser può incontrare nel corso dellanalisi di una base dati vasta ed
eterogenea come il Web sono virtualmente infinite: per questo motivo,
costruire unapplicazione parser abbastanza robusta e flessibile da po-
ter essere eseguita sullintero contenuto web a una velocità ragionevo-
le è un compito niente affatto banale. Per risolvere questo problema,
Brin e Page hanno utilizzato Flex
8
per generare un analizzatore lessi-
cale su misura (dotato di un proprio stack) che si è rivelato estre-
mamente affidabile.
7
[Bru02].
8