Ponieważ ruch NoSQL rośnie w oparciu o bazy danych oparte na dokumentach, ostatnio patrzyłem na MongoDB. Zauważyłem uderzające podobieństwo do traktowania przedmiotów jako „Dokumentów”, podobnie jak Lucene (i użytkownicy Solr).
Pytanie: dlaczego miałbyś używać NoSQL (MongoDB, Cassandra, CouchDB itp.) Nad Lucene (lub Solr) jako „bazy danych”?
To, czego szukam (i jestem pewien, że inni) w odpowiedzi, to ich głębokie porównania. Pomińmy razem dyskusje o relacyjnych bazach danych, ponieważ służą one innym celom.
Lucene ma kilka poważnych zalet, takich jak potężne systemy wyszukiwania i wagi. Nie wspominając już o aspektach w Solr (które Solr zostanie wkrótce zintegrowany z Lucene, tak!). Możesz używać dokumentów Lucene do przechowywania identyfikatorów i uzyskiwać dostęp do dokumentów jako takich, jak MongoDB. Wymieszaj go z Solr, a otrzymasz rozwiązanie oparte na WebService, z równoważeniem obciążenia.
Możesz nawet dodać porównanie dostawców pamięci podręcznej poza procesem, takich jak Velocity lub MemCached, mówiąc o podobnym przechowywaniu danych i skalowalności MongoDB.
Ograniczenia dotyczące MongoDB przypominają mi o korzystaniu z MemCached, ale mogę korzystać z Velocity Microsoftu i mieć większą moc grupowania i zbierania list nad MongoDB (tak myślę). Nie może być szybszy ani skalowalny niż buforowanie danych w pamięci. Nawet Lucene ma dostawcę pamięci.
MongoDB (i inne) mają pewne zalety, takie jak łatwość użycia ich API. Utwórz nowy dokument, utwórz identyfikator i zapisz go. Gotowe. Miło i łatwo.