MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

NoSQL (MongoDB) vs Lucene (lub Solr) jako Twoja baza danych

To świetne pytanie, nad którym sporo się zastanawiałem. Podsumuję moje wnioski:

  1. Możesz z łatwością użyć Lucene/Solr zamiast MongoDB w prawie wszystkich sytuacjach, ale nie odwrotnie. Post Granta Ingersolla podsumowuje to tutaj.

  2. MongoDB itp. wydaje się służyć celowi, w którym nie ma wymogu wyszukiwania i/lub facetingu. Wydaje się, że jest to prostsze i prawdopodobnie łatwiejsze przejście dla programistów detoksykujących ze świata RDBMS. Jeśli ktoś nie jest do tego przyzwyczajony, Lucene i Solr mają bardziej stromą krzywą uczenia się.

  3. Nie ma wielu przykładów wykorzystania Lucene/Solr jako datastore, ale Guardian poczynił pewne postępy i podsumowuje to w doskonałym slide-decku, ale oni też nie są zobowiązani do całkowitego przejścia na modę Solr i „badania” łączenia Solr z CouchDB.

  4. Na koniec przedstawię nasze doświadczenie, niestety nie mogę wiele powiedzieć o uzasadnieniu biznesowym. Pracujemy w skali kilku TB danych, aplikacji działającej niemal w czasie rzeczywistym. Po zbadaniu różnych kombinacji postanowiłem pozostać przy Solr. Do tej pory nie żałuję (6 miesięcy i dalej) i nie widzę powodu, aby przejść na inny.

Podsumowanie:jeśli nie masz wymogu wyszukiwania, Mongo oferuje proste i wydajne podejście. Jeśli jednak wyszukiwanie jest kluczem do Twojej oferty, prawdopodobnie lepiej będzie trzymać się jednej technologii (Solr/Lucene) i zoptymalizować ją – mniej ruchomych części.

Moje 2 centy, mam nadzieję, że to pomogło.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $toBool

  2. Przechowuj datę w MongoDB bez uwzględniania strefy czasowej

  3. Co to jest operator $unwind w MongoDB?

  4. $ lookup zwraca pustą tablicę

  5. mongoDB/mongoose:unikalne, jeśli nie null