Realizzare un motore di ricerca
Salve sono sempre io, meglio conosciuto per la strepitosa libreria cgraph, oppure per il favoloso compilatore 80x86, a parte gli scherzi, eccomi nuovamente con uno bellissimo ed interessantissimo tutorial nuovo di zecca, forse l'unico veralmente utile in questo sito.
Oggi ho voglia di discutere il funzionamento dei motori di ricerca, e di fare due valutazioni che porteranno all'inizio dello sviluppo di un motore di ricerca su questo stesso sito.
Prima di proseguire bisogna dire cosa è esattamente un motore di ricerca su Internet, e a tale proposito possiamo definire motore di ricerca quel software, che permette di ricercare informazioni testuali o multimediali o di altro genere in mezzo ad una matassa di siti web selezionati o meno.
Esistono differenti tipi di motori di ricerca, molti sono veramente semplici, altri più complessi, a noi quelli semplici non interessano, perchè soffriamo di megalomania acuta e quindi dobbiamo fare per forza le cose in grande, quindi cercheremo di analizzare il funzionamento di un motore di ricerca vero, per ottenerne un modello funzionale e poi sviluppare le varie caratteristiche.
Una premessa sui motori più semplici è comunque dovuta, alcuni motori semplici sono ad esempio quelli che raccolgono le informazioni dei siti in maniera molto schematica e ridotta, organizzando e registrando i dati per le ricerche in grossi database che permettono di cercare singole parole chiavi, però su una quantità di informazioni sui siti molto ridotta, quantità che può essere recuperata dai meta tags (sono questi i metamotori di ricerca), oppure da un centinaio di parole chiavi che identificano il sito. Tutti questi sono motori piccoli, i quali hanno il limite principale di non potere comunque superare i 10000 indirizzi, pena grossi problemi con il database degli indirizzi che comincia a soffrire nelle ricerche.
Passiamo quindi alla trattazione dei grossi motori di ricerca, da una prima analisi, si possono definire nella costruzione di un motore di ricerca per Internet, distinti moduli o componenti, i quali sono il crawler, l'indicizzatore, e il motore vero e proprio.
IL crawler o verme o ancora ragno, spider,webbot o come lo volete chiamare, è il componente forse di base, ma a mio avviso non il più importante ai fini del funzionamento di un grande motore di ricerca, questo componente ha lo scopo ed il ruolo di cercare le informazioni su Internet, partendo da una base di indirizzi e scovando più indirizzi possibili, in pratica si occupa di visitare fisicamente gli indirizzi web e di ricavarne le informazioni necessarie che poi passa all'indicizzatore.
L'indicizzatore è a mio avviso, il componente fondamentale, se viene sviluppato bene questo, il motore di ricerca sarà un buon motore di ricerca, altrimenti non potrà che essere molto scarso, si potrebbe tentare di realizzare un indicizzatore utilizzando archivi con indici per chiavi a liste invertite, e la tecnica di accesso hash, naturalmente dovranno essere fatte delle stime preventive sulla quantità di indirizzi che vorremo far gestire al nostro sistema.
Il motore di ricerca vero e proprio, deve essere la parte finale e probabilmente è la più semplice da realizzare, siccome deve solo occuparsi della base di dati creata e sviluppata dall'indicizzatore.
Con questa breve introduzione è tutto, possiamo passare adesso allo sviluppo e allo studio dei crawlers.
http://www.xungame.com/ http://www.mastercoding.com/ http://www.codingparadise.com/
Giovanni Ceglia
giovanniceglia@xungame.com