Da die NoSQL-Bewegung basierend auf dokumentbasierten Datenbanken wächst, habe ich mir in letzter Zeit MongoDB angesehen. Ich habe eine bemerkenswerte Ähnlichkeit mit der Behandlung von Elementen als "Dokumente" festgestellt, genau wie Lucene (und Benutzer von Solr).
Die Frage: Warum sollten Sie NoSQL (MongoDB, Cassandra, CouchDB usw.) über Lucene (oder Solr) als "Datenbank" verwenden?
Was ich (und ich bin sicher, dass andere) in einer Antwort suchen, sind einige tiefgreifende Vergleiche von ihnen. Lassen Sie uns alle relationalen Datenbankdiskussionen überspringen, da sie einem anderen Zweck dienen.
Lucene bietet einige ernsthafte Vorteile, wie z. B. leistungsstarke Such- und Gewichtssysteme. Ganz zu schweigen von den Facetten in Solr (die Solr bald in Lucene integriert, yay!). Sie können Lucene-Dokumente verwenden, um IDs zu speichern und wie MongoDB auf die Dokumente als solche zuzugreifen. Mischen Sie es mit Solr, und Sie erhalten jetzt eine WebService-basierte Lösung mit Lastenausgleich.
Sie können sogar einen Vergleich von Out-of-Proc-Cache-Anbietern wie Velocity oder MemCached durchführen, wenn Sie über ähnliche Datenspeicherung und Skalierbarkeit von MongoDB sprechen.
Die Einschränkungen in Bezug auf MongoDB erinnern mich an die Verwendung von MemCached, aber ich kann Microsoft Velocity verwenden und über MongoDB mehr Möglichkeiten zum Gruppieren und Sammeln von Listen verfügen (glaube ich). Schneller oder skalierbarer kann es nicht sein, Daten im Speicher zwischenzuspeichern. Sogar Lucene hat einen Speicheranbieter.
MongoDB (und andere) haben einige Vorteile, wie zum Beispiel die Benutzerfreundlichkeit ihrer API. Erstellen Sie ein neues Dokument, erstellen Sie eine ID und speichern Sie es. Getan. Schön und einfach.