Sono in procinto di progettare un motore di ricerca per un sito asp.net. Il sito utilizza attualmente Microsoft Indexing Server per indicizzare e cercare contenuti che vanno da semplici file di testo a documenti MS in PDF. MIS viene anche utilizzato per eseguire la scansione dei file server. MIS in tandem con Index Server Companion esegue la ricerca per contenuto di siti esterni. Ho intenzione di sostituire MIS con l'indicizzatore / crawler che sto cercando di costruire.
La motivazione per andare lontano da MIS è
1.MSFT interromperà il supporto MIS nelle prossime versioni di Server 2012.
2. I maggiori fornitori di PaaS non supportano MIS.
Poiché la mia piattaforma è completamente nello stack Microsoft, non posso permettermi (a causa di problemi di distribuzione / manutenzione rispetto ai problemi di costo) di avere un server di applicazioni Java. Pertanto, Solr, ed efficacemente, SolrNet è escluso.
Con questo essere il contesto, ho un paio di domande.
1. Scelta tecnologica
Avevo fatto le mie indagini iniziali e guardato Lucene.Net. Sembra che ci siano 2 problemi nell'uso di Lucene.Net. Per prima cosa, non è possibile eseguire la scansione dei contenuti esterni. Non sembra esserci una porta diretta di Nutch in .Net. In secondo luogo, poiché si tratta solo di un indicizzatore, non è in grado di analizzare vari tipi di documenti. L'analisi viene lasciata allo sviluppatore.
Quindi, quale sarebbe la migliore scelta tecnologica sulla piattaforma .Net per raggiungere l'indicizzazione? strisciando? Esistono librerie open source .Net disponibili per l'analisi dei documenti?
2. Pattern di architettura
Esiste un modello architettonico generale o una procedura ottimale da seguire nella progettazione di un motore di ricerca di questo tipo?