2010-08-15 16 views
2

Je suis un développeur .NET et j'ai besoin d'apprendre Lucene pour pouvoir exécuter un service de recherche à très grande échelle qui supprime les entrées auxquelles l'utilisateur final n'a pas accès. (Par exemple un utilisateur peut rechercher tous les documents avec le niveau de jeu 3 ou plus, mais pas le niveau de jeu 2 ou 1)Où puis-je commencer à apprendre Lucene.NET Solr Hadoop et MapReduce?

Où dois-je commencer à apprendre, quels produits dois-je envisager? Pour être honnête, je suis un peu dépassée, mais je suis déterminée à tout comprendre ... finalement.

+0

+1 pour la question. Je suis vraiment intéressé par MapReduce. – dierre

Répondre

1

Si vous voulez un livre qui couvre toutes les bases de Lucene, pensez « Lucene in Action ». Même si les exemples de code sont Java, vous pouvez facilement les transférer vers .NET. Bien sûr, il y a aussi des tonnes de ressources sur le web, telles que SO et les listes de diffusion Lucene qui devraient vous aider.

Pour le projet que vous décrivez, vous devriez regarder Solr car il fait abstraction des nombreuses questions d'évolutivité, etc. et via Solrnet peuvent facilement intégrer dans votre application .NET. Pour restreindre l'accès par niveau, vos documents d'index doivent contenir un champ appelé "Level" (disons) et en arrière-plan de votre requête utilisateur, vous ajoutez la requête "Level: Level-1", en utilisant une construction de requête booléenne.

A ce stade, ma recommandation serait de rester loin de Hadoop (Apache Map-reduce mise en œuvre) pour votre projet et le bâton avec Solr. Si vous êtes cependant désireux d'apprendre à ce sujet. Il a aussi un livre très utile, vous l'avez deviné "Hadoop In Action" (également de Manning Publications).

+0

Merci! Pouvez-vous m'aider à comprendre la différence entre Hadoop et Solr? Servent-ils la même exigence de différentes manières? – LamonteCristo

+0

Ils sont des pommes et des oranges. Pour la plupart des applications finales d'entreprise, Solr devrait suffire et évoluer correctement. Hadoop est une plate-forme informatique distribuée utilisée par des organisations comme Yahoo pour leurs index de recherche. Hadoop est également utilisé pour des tâches d'apprentissage machine hautes performances, Apache Mahout en est un exemple. Bottom-line: puisque vous avez indiqué que vous êtes novice, ma recommandation serait de s'en tenir à Solr. Sauf si je manque quelque chose, je pense que cela devrait suffire à vos besoins. – Mikos

+0

Étant donné que de très grandes quantités de données doivent être indexées en temps réel, j'ai peut-être besoin de Hadoop pour traiter et indexer les données, et Solr pour permettre aux utilisateurs de lire les données? (Via REST?) – LamonteCristo

1

Vous semblez être confus au sujet de ce projet exactement chaque (Lucene/Solr/Hadoop/etc) fait. Donc, la première chose à faire serait de comprendre le but de chaque projet. Lisez les docs et les blogs à leur sujet. Si possible, achetez et lisez des livres sur eux.

Par exemple, MapReduce et Hadoop ont rien à voir avec vos exigences de sécurité. Hadoop est une plateforme pour l'informatique distribuée et évolutive. Mais Solr is scalable on its own. Vous souhaiterez peut-être utiliser Hadoop au distribute a crawler though (e.g. Nutch).