ด้วยความเคลื่อนไหว NoSQL ที่เพิ่มขึ้นตามฐานข้อมูลที่ใช้เอกสารฉันได้ดู MongoDB เมื่อเร็ว ๆ นี้ ฉันได้สังเกตเห็นความคล้ายคลึงกันที่น่าทึ่งกับวิธีการปฏิบัติต่อรายการเป็น "เอกสาร" เช่นเดียวกับ Lucene (และผู้ใช้ของ Solr)
ดังนั้นคำถาม: ทำไมคุณต้องการใช้ NoSQL (MongoDB, Cassandra, CouchDB ฯลฯ ) เหนือ Lucene (หรือ Solr) เป็น "ฐานข้อมูล" ของคุณ?
สิ่งที่ฉัน (และฉันแน่ใจว่าคนอื่นกำลังมองหา) ในคำตอบคือการเปรียบเทียบลึกของพวกเขา มาข้ามการอภิปรายฐานข้อมูลเชิงสัมพันธ์กันไปพร้อม ๆ กันเพราะมันมีจุดประสงค์ที่แตกต่างกัน
Lucene ให้ประโยชน์อย่างมากเช่นการค้นหาที่มีประสิทธิภาพและระบบน้ำหนัก ไม่ต้องพูดถึงแง่มุมใน Solr (ซึ่ง Solr จะถูกรวมเข้ากับ Lucene เร็ว ๆ นี้ใช่!) คุณสามารถใช้เอกสาร Lucene เพื่อจัดเก็บ ID และเข้าถึงเอกสารเช่น MongoDB ผสมกับ Solr และตอนนี้คุณจะได้รับโซลูชันการโหลดบาลานซ์บนเว็บเซอร์วิส
คุณสามารถเปรียบเทียบผู้ให้บริการแคชนอกเช่น Velocity หรือ MemCached เมื่อพูดถึงการจัดเก็บข้อมูลที่คล้ายกันและความยืดหยุ่นของ MongoDB
ข้อ จำกัด ของ MongoDB ทำให้ฉันนึกถึงการใช้ MemCached แต่ฉันสามารถใช้ Velocity ของ Microsoft และมีการจัดกลุ่มและการรวบรวมรายชื่อมากกว่า MongoDB (ฉันคิดว่า) ไม่สามารถรับได้เร็วขึ้นหรือปรับขนาดได้กว่าการแคชข้อมูลในหน่วยความจำ แม้แต่ Lucene ก็มีผู้ให้บริการหน่วยความจำ
MongoDB (และอื่น ๆ ) มีข้อดีเช่นความสะดวกในการใช้ API สร้างเอกสารใหม่สร้าง ID และเก็บไว้ เสร็จสิ้น ดีและง่าย