Avec le mouvement NoSQL se développant basé sur des bases de données basées sur des documents, j'ai regardé MongoDB récemment. J'ai remarqué une similitude frappante avec la façon de traiter les éléments comme des "documents", tout comme Lucene (et les utilisateurs de Solr).
Alors, la question: pourquoi voudriez-vous utiliser NoSQL (MongoDB, Cassandra, CouchDB, etc.) sur Lucene (ou Solr) comme "base de données"?
Ce que je recherche (et je suis sûr que d'autres le souhaitent) dans une réponse, ce sont des comparaisons approfondies. Sautons ensemble les discussions sur les bases de données relationnelles, car elles servent un objectif différent.
Lucene offre de sérieux avantages, tels que des systèmes de recherche et de poids puissants. Sans parler des facettes de Solr (dont Solr sera bientôt intégré à Lucene, yay!). Vous pouvez utiliser des documents Lucene pour stocker des ID et accéder aux documents en tant que tels, tout comme MongoDB. Mélangez-le avec Solr et vous obtenez maintenant une solution basée sur WebService et à charge équilibrée.
Vous pouvez même ajouter une comparaison de fournisseurs de cache hors processus tels que Velocity ou MemCached lorsque vous parlez de stockage de données similaire et d'évolutivité de MongoDB.
Les restrictions autour de MongoDB me rappellent d'utiliser MemCached, mais je peux utiliser Velocity de Microsoft et avoir plus de pouvoir de regroupement et de collecte de liste sur MongoDB (je pense). Ne peut pas être plus rapide ou évolutif que la mise en cache des données en mémoire. Même Lucene a un fournisseur de mémoire.
MongoDB (et d'autres) présente certains avantages, tels que la facilité d'utilisation de son API. Créez un document, créez un identifiant et stockez-le. Terminé. Agréable et facile.