ドキュメントベースのデータベースに基づいて成長するNoSQLの動きに伴い、最近、MongoDBを検討しました。Lucene(およびSolrのユーザー)と同様に、アイテムを「ドキュメント」として扱う方法との驚くべき類似性に気づきました。
それで、質問:Lucene(またはSolr)よりもNoSQL(MongoDB、Cassandra、CouchDBなど)を「データベース」として使用する理由は何ですか?
私が(そして他の人も確実に)答えを探しているのは、それらのいくつかの詳細な比較です。リレーショナルデータベースのディスカッションは、目的が異なるため、まとめてスキップしてみましょう。
Luceneには、強力な検索や重み付けシステムなど、いくつかの深刻な利点があります。Solrのファセットは言うまでもありません(SolrはすぐにLuceneに統合されます、そうです!)。Luceneドキュメントを使用してIDを保存し、MongoDBと同じようにドキュメントにアクセスできます。それをSolrと組み合わせると、WebServiceベースの負荷分散ソリューションが得られます。
MongoDBの同様のデータ保存とスケーラビリティについて話すとき、VelocityやMemCachedなどのアウトオブプロセスキャッシュプロバイダーの比較を投入することもできます。
MongoDBに関する制限はMemCachedの使用を思い出させますが、MicrosoftのVelocityを使用して、MongoDBよりもグループ化とリスト収集の機能を強化できます(私はそう思います)。メモリにデータをキャッシュするよりも高速またはスケーラブルなものを取得できません。Luceneにもメモリプロバイダーがあります。
MongoDB(およびその他)には、APIの使いやすさなど、いくつかの利点があります。ドキュメントを新規作成し、IDを作成して保存します。できました。簡単です。