Ci sono molte parti di un motore di ricerca. In linea di massima, in modo irrimediabilmente generale (gente, sentirsi libero di modificarla se si sente di poter aggiungere descrizioni migliori, collegamenti, ecc):
Il crawler. Questa è la parte che attraversa il web, cattura le pagine e memorizza le informazioni su di esse in un archivio dati centrale. Oltre al testo stesso, vorrai cose come il tempo di accesso, ecc. Il crawler deve essere abbastanza intelligente da sapere quanto spesso colpire determinati domini, obbedire alla convenzione robots.txt, ecc.
Il parser. Questo legge i dati recuperati dal crawler, li analizza, salva i metadati di cui ha bisogno, getta via la posta indesiderata e, eventualmente, fornisce suggerimenti al crawler su cosa recuperare la prossima volta.
L'indicizzatore. Legge le cose che il parser ha analizzato e crea indici invertiti nei termini trovati sulle pagine web. Può essere intelligente quanto vuoi: applicare le tecniche di PNL per creare indici di concetti, link incrociati, inserire sinonimi, ecc.
Il motore di classifica. Dato qualche migliaio di URL che corrispondono a "mela", come decidi quale risultato è il migliore? Jut l'indice non ti dà quell'informazione. È necessario analizzare il testo, la struttura di collegamento e qualsiasi altro pezzo che si desidera guardare e creare alcuni punteggi.Questo può essere fatto completamente al volo (che è davvero difficile), o basato su alcune nozioni pre-calcolate di "esperti" (vedi PageRank, ecc.).
Il front-end. Qualcosa deve ricevere query utente, colpire il motore centrale e rispondere; questo qualcosa deve essere intelligente riguardo ai risultati di memorizzazione nella cache, magari mescolando i risultati di altre fonti, ecc. Ha una serie di problemi.
Il mio consiglio - scegliere quali di questi interessi la maggior parte, scaricare Lucene o Xapian o qualsiasi altro progetto open source là fuori, tirare fuori la punta che fa uno dei compiti di cui sopra, e cercare di sostituirlo . Speriamo, con qualcosa di meglio :-).
Alcuni link che possono rivelarsi utili: "Agile web-crawler", una carta da Estonia (in lingua inglese) Sphinx Search engine, un'indicizzazione e ricerca api. Progettato per DB di grandi dimensioni, ma modulare e aperto. "Information Retrieval, un libro di testo su IR di Manning et al. Buona panoramica di come sono costruiti gli indici, di vari problemi che emergono, nonché di alcune discussioni sulla scansione, ecc. Versione online gratuita (per ora)!
Dipende dai tuoi linguaggi di programmazione preferiti. Java è fuori discussione. Codice in asp.net, perl, python, php, ...sarebbe importante sapere prima di poter offrire una risposta adeguata :) – Anheledir
hey! dai un'occhiata a [mine] (http://code.google.com/p/goomez/) ... molto semplice cercatore di file basato su [lucene.net] (http://incubator.apache.org/lucene.net/) – sebagomez
Hai provato a nutch.net una porta dal nutch java .... – chugh97