Belge tabanlı veritabanlarına dayalı olarak büyüyen NoSQL hareketi ile son zamanlarda MongoDB'ye baktım. Lucene'nin (ve Solr kullanıcılarının) yaptığı gibi, "Belgeler" olarak nasıl davranılacağına dair çarpıcı bir benzerlik fark ettim.
Peki, soru: Neden NoSQL'i (MongoDB, Cassandra, CouchDB, vb.) Lucene (veya Solr) üzerinde "veritabanı" olarak kullanmak istersiniz?
Ben bir cevapta aradığım (ve başkalarının da olduğundan emin olduğum) onların derin dalış karşılaştırmalarıdır. İlişkisel veritabanı tartışmalarını farklı bir amaca hizmet ettikleri için birlikte atlayalım.
Lucene, güçlü arama ve ağırlık sistemleri gibi bazı ciddi avantajlar sağlar. Solr'daki yönlerden bahsetmiyorum (Solr yakında Lucene'ye entegre edilecek, yay!). Kimlikleri saklamak ve tıpkı MongoDB gibi belgelere erişmek için Lucene belgelerini kullanabilirsiniz. Solr ile karıştırın ve şimdi WebService tabanlı, yük dengeli bir çözüm elde edersiniz.
Benzer veri depolama ve MongoDB'nin ölçeklenebilirliği hakkında konuşurken Velocity veya MemCached gibi proc-proc önbellek sağlayıcılarının bir karşılaştırmasını bile yapabilirsiniz.
MongoDB ile ilgili kısıtlamalar MemCached'i kullanmamı hatırlatıyor, ancak Microsoft'un Hızını kullanabilir ve MongoDB üzerinde daha fazla gruplama ve liste toplama gücüne sahip olabilirim (sanırım). Bellekteki verileri önbelleğe almaktan daha hızlı veya ölçeklenebilir olamaz. Lucene'nin bile bir bellek sağlayıcısı var.
MongoDB (ve diğerleri), API'lerinin kullanım kolaylığı gibi bazı avantajlara sahiptir. Bir belge oluşturun, bir kimlik oluşturun ve saklayın. Bitti. Güzel ve kolay.