2009-09-13 9 views
0

Je veux développer l'application google desktop search comme, je veux savoir quelles techniques d'indexation/algorithmes je devrais utiliser afin que je puisse récupérer très rapidement les données.Des algorithmes d'indexation pour développer une application comme google desktop search?

+0

question est trop générale –

+0

essayer de chercher B-Trees ... –

+0

Y a-t-il d'autres techniques que les gens utilisent pour la récupération rapide de données? – SunnyShah

Répondre

6

En général, ce que vous voulez est un Inverted Index. Vous pouvez faire vous-même l'indexation, mais vous devez gérer stemming, stop words, en étendant la liste des écritures pour inclure des positions dans le document afin de pouvoir gérer les requêtes multi-mots, et ainsi de suite. Ensuite, vous devez stocker l'index, probablement dans un B-Tree sur le disque - ou vous pouvez vous faciliter la vie en utilisant une base de données existante pour le stockage sur disque, telle que BDB. Vous devez également écrire un planificateur de requêtes qui interprète les requêtes utilisateur, exécute query expansion et les convertit en une série d'analyses d'index. L'article de Wikipedia sur Search Engine Indexing fournit également un bon aperçu de tous les défis. Ou, vous pouvez tirer parti du travail existant et utiliser des solutions d'indexation de texte intégral prêtes à l'emploi comme Apache Lucene et Compass (qui est construit sur Lucene). Ces outils traitent pratiquement tout ce qui est détaillé ci-dessus (et plus), ce qui vous laisse simplement écrire l'outil pour construire et mettre à jour l'index en introduisant tous vos documents dans Lucene, et l'interface utilisateur pour permettre aux utilisateurs de le rechercher.

Questions connexes