Det här är en bra fråga, något jag har funderat över ganska mycket. Jag kommer att sammanfatta mina lärdomar:
-
Du kan enkelt använda Lucene/Solr istället för MongoDB för i stort sett alla situationer, men inte vice versa. Grant Ingersolls inlägg sammanfattar det här.
-
MongoDB etc. verkar tjäna ett syfte där det inte finns något krav på sökning och/eller facettering. Det verkar vara en enklare och utan tvekan lättare övergång för programmerare som detoxar från RDBMS-världen. Om man inte är van vid det har Lucene &Solr en brantare inlärningskurva.
-
Det finns inte många exempel på att använda Lucene/Solr som en datalagring, men Guardian har gjort framsteg och sammanfattar detta i ett utmärkt bildspel, men de är också oförpliktiga till att helt hoppa på Solr-tåget och "undersöka" att kombinera Solr med CouchDB.
-
Slutligen kommer jag att erbjuda vår erfarenhet, tyvärr kan jag inte avslöja mycket om affärsfallet. Vi arbetar på en skala av flera TB data, en nästan realtidsapplikation. Efter att ha undersökt olika kombinationer bestämde jag mig för att hålla fast vid Solr. Jag ångrar inte hittills (6 månader och räknar) och ser ingen anledning att byta till något annat.
Sammanfattning:om du inte har ett sökkrav erbjuder Mongo ett enkelt och kraftfullt tillvägagångssätt. Men om sökning är nyckeln till ditt erbjudande, är det förmodligen bättre att du håller dig till en teknik (Solr/Lucene) och optimerar det hela - färre rörliga delar.
Mina 2 cent, hoppas det hjälpte.