MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

NoSQL (MongoDB) so với Lucene (hoặc Solr) làm cơ sở dữ liệu của bạn

Đây là một câu hỏi tuyệt vời, điều mà tôi đã suy nghĩ rất nhiều. Tôi sẽ tóm tắt bài học kinh nghiệm của mình:

  1. Bạn có thể dễ dàng sử dụng Lucene / Solr thay cho MongoDB cho hầu hết các tình huống, nhưng không phải ngược lại. Bài đăng của Grant Ingersoll tóm tắt nó ở đây.

  2. MongoDB, v.v. dường như phục vụ một mục đích mà không có yêu cầu tìm kiếm và / hoặc phân loại. Nó dường như là một quá trình chuyển đổi đơn giản và dễ dàng hơn cho các lập trình viên thoát khỏi thế giới RDBMS. Trừ khi ai đó đã quen với nó Lucene &Solr có đường cong học tập dốc hơn.

  3. Không có nhiều ví dụ về việc sử dụng Lucene / Solr làm kho dữ liệu, nhưng Guardian đã tạo ra một số bước tiến và tóm tắt điều này trong một slide-deck tuyệt vời, nhưng họ cũng không cam kết hoàn toàn nhảy trên băng Solr và "điều tra" kết hợp Solr với CouchDB.

  4. Cuối cùng, tôi sẽ đưa ra kinh nghiệm của chúng tôi, rất tiếc là không thể tiết lộ nhiều về trường hợp kinh doanh. Chúng tôi làm việc trên quy mô vài TB dữ liệu, một ứng dụng gần như thời gian thực. Sau khi tìm hiểu nhiều cách kết hợp, quyết định gắn bó với Solr. Không hối tiếc cho đến nay (6 tháng và tiếp tục) và không có lý do gì để chuyển sang một số khác.

Tóm tắt:nếu bạn không có yêu cầu tìm kiếm, Mongo cung cấp một cách tiếp cận đơn giản và mạnh mẽ. Tuy nhiên, nếu tìm kiếm là chìa khóa cho sản phẩm của bạn, bạn có khả năng tốt hơn nên gắn bó với một công nghệ (Solr / Lucene) và tối ưu hóa nó - ít bộ phận chuyển động hơn.

2 xu của tôi, hy vọng điều đó có ích.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giới thiệu Biểu đồ tra cứu trong MongoDB

  2. Thực hiện truy vấn regex với PyMongo

  3. pymongo:MongoClient hoặc Kết nối

  4. Networkx không bao giờ hoàn thành việc tính toán vị trí trung tâm giữa 2 triệu nút

  5. Thêm / trừ ngày vào ISODate trong MongoDB Shell