Dengan gerakan NoSQL yang tumbuh berdasarkan pada basis data berbasis dokumen, saya telah melihat MongoDB belakangan ini. Saya telah melihat kesamaan yang mencolok dengan cara memperlakukan item sebagai "Dokumen", seperti halnya Lucene (dan pengguna Solr).
Jadi, pertanyaannya: Mengapa Anda ingin menggunakan NoSQL (MongoDB, Cassandra, CouchDB, dll) di atas Lucene (atau Solr) sebagai "basis data" Anda?
Apa yang saya (dan saya yakin orang lain) cari dalam jawaban adalah beberapa perbandingan mendalam dari mereka. Mari kita lewati semua diskusi basis data relasional, karena mereka melayani tujuan yang berbeda.
Lucene memberikan beberapa keuntungan serius, seperti sistem pencarian dan berat yang kuat. Belum lagi aspek dalam Solr (yang Solr sedang diintegrasikan ke dalam Lucene segera, yay!). Anda dapat menggunakan dokumen Lucene untuk menyimpan ID, dan mengakses dokumen seperti itu seperti MongoDB. Campur dengan Solr, dan Anda sekarang mendapatkan solusi load-based berbasis WebService.
Anda bahkan dapat membandingkan penyedia cache out-of-proc seperti Velocity atau MemCached ketika berbicara tentang penyimpanan data yang serupa dan skalabilitas MongoDB.
Pembatasan seputar MongoDB mengingatkan saya untuk menggunakan MemCached, tetapi saya dapat menggunakan Microsoft Velocity dan memiliki lebih banyak pengelompokan dan daftar kekuatan pengumpulan atas MongoDB (saya pikir). Tidak bisa mendapatkan yang lebih cepat atau scalable dari caching data di memori. Bahkan Lucene memiliki penyedia memori.
MongoDB (dan lainnya) memang memiliki beberapa kelebihan, seperti kemudahan penggunaan API mereka. Baru membuat dokumen, membuat id, dan menyimpannya. Selesai Baik dan mudah.