sql >> Database >  >> NoSQL >> MongoDB

NoSQL (MongoDB) vs Lucene (of Solr) als uw database

Dit is een geweldige vraag, iets waar ik nogal eens over heb nagedacht. Ik zal mijn geleerde lessen samenvatten:

  1. Je kunt Lucene/Solr gemakkelijk gebruiken in plaats van MongoDB voor vrijwel alle situaties, maar niet andersom. De post van Grant Ingersoll vat het hier samen.

  2. MongoDB enz. lijken een doel te dienen waarbij zoeken en/of facetten niet vereist is. Het lijkt een eenvoudigere en aantoonbaar gemakkelijkere overgang te zijn voor programmeurs die ontgiften uit de RDBMS-wereld. Tenzij men eraan gewend is, hebben Lucene &Solr een steilere leercurve.

  3. Er zijn niet veel voorbeelden van het gebruik van Lucene/Solr als datastore, maar Guardian heeft enige vooruitgang geboekt en vat dit samen in een uitstekende slide-deck, maar ook zij zijn vrijblijvend om volledig op Solr te springen en te "onderzoeken" om Solr te combineren met CouchDB.

  4. Ten slotte zal ik onze ervaring aanbieden, helaas kan ik niet veel onthullen over de businesscase. We werken op de schaal van meerdere TB aan data, een bijna realtime applicatie. Na verschillende combinaties te hebben onderzocht, besloten om bij Solr te blijven. Tot nu toe geen spijt (6 maanden en nog steeds) en zie geen reden om naar een andere over te stappen.

Samenvatting:als u geen zoekvereiste heeft, biedt Mongo een eenvoudige en krachtige aanpak. Als zoeken echter de sleutel is tot uw aanbod, kunt u zich waarschijnlijk beter bij één technologie (Solr/Lucene) houden en deze optimaliseren:minder bewegende delen.

Mijn 2 cent, ik hoop dat dat heeft geholpen.



  1. DataFrame naar RDD [(String, String)] conversie

  2. Sleutels opslaan met prefix die vervallen in redis

  3. Probleem bij het retourneren van gegevens die zijn opgehaald uit DB-query's die in de lus worden aangeroepen

  4. redis time-out met predis