2012-06-13 23 views
11

Tôi khá mới đối với cơ sở dữ liệu NoSql, nhưng tôi thực sự yêu MongoDB với trình điều khiển chính thức C#. Nó hiện là phụ trợ cho một ứng dụng MVC tôi đang viết, và sự đơn giản và tốc độ làm cho cuộc sống của tôi cách dễ dàng hơn.MongoDB cung cấp những lợi thế nào so với ElasticSearch như một cơ sở dữ liệu NoSQL chỉ

Tuy nhiên tôi đã đến thời điểm đó trong ứng dụng mà tôi cần tìm kiếm thực sự tuyệt vời. Tôi từng sử dụng Solr, nhưng đã trở nên khá quan tâm đến ElasticSearch.

Tìm kiếm đàn hồi, theo như tôi có thể nói (từ một mức rất hời hợt), có thể làm mọi thứ MongoDB có thể về mặt cơ sở dữ liệu tài liệu.

Vì vậy, nếu tôi đã sử dụng một db NoSql, và tôi cần tìm kiếm tuyệt vời, có điểm nào trong Mongo không? Trường hợp sử dụng là gì?

Mongo có nhanh hơn không? Dễ sử dụng hơn? Đó có phải là các kiểu dữ liệu và trình điều khiển BSON không? Tại sao không sử dụng ElasticSearch làm DB của tôi?

Tôi hiện đang sử dụng AppHarbor và lovin '"The Cloud". Tôi ghét CNTT và chỉ muốn tập trung vào ứng dụng của mình. Với điều đó đã nói, lợi thế duy nhất tôi thấy cho đến thời điểm này là:

  • Đã có một số nhà cung cấp MongoDB "Đám mây". Với ElasticSearch, tôi phải tự mình thiết lập tất cả.
+0

Loại rộng. Và tôi không nghĩ nhanh nhất là tiêu chí đúng. Đối với một ứng dụng nhỏ đến cỡ trung, tất cả chúng sẽ tạo ra tốc độ tốt. Tìm một tính năng và dễ dàng phát triển và hỗ trợ. Cài đặt và môi trường không phải là khó khăn. Bạn ghét CNTT bao nhiêu? – Paparazzi

+2

Tóm lại: tra cứu nhiều phím. Một chút nữa là một combo của ES + MongoDB là tuyệt vời, tôi đang sử dụng nó trong một trang web gần sản xuất với hơn 4 năm kinh nghiệm với Solr/Lucene, Membase, và các lựa chọn thay thế khác. Thực hành tốt nhất, ít nhất là ở các công trình cho tôi: giữ cho các mô hình miền của bạn ở Mongo, có tìm kiếm trong ES nhưng chỉ lưu trữ các khóa và sau khi tìm kiếm ES thực hiện tra cứu chính trong Mongo. –

+1

@ Geert-Jan tại sao? Khi ES có thể trả lại tài liệu cùng một lúc như thực hiện tra cứu đa khóa. Lợi thế nào bạn đã đánh ES và sau đó là mongo? – DrTech

Trả lời

3

Đây là câu hỏi hay. Tôi đã tự hỏi mình cùng một câu hỏi và đưa ra câu trả lời sau đây.

  1. Tìm kiếm không có cách nào tốt để sao lưu dữ liệu. Ví dụ, thực hiện tìm kiếm nhanh cho "ElasticSearch backup" và một cho "backupodb backup". MongoDB có các công cụ và tài liệu hướng dẫn về cách sao lưu dữ liệu. Mặc dù có tài liệu về cách sao lưu dữ liệu ElasticSearch, tài liệu này dường như không hoàn thiện.
  2. Nói chung, MongoDB có tài liệu tốt hơn nhiều. Đặc biệt là tài liệu quản trị của nó là tốt hơn nhiều so với ElasticSearch.
  3. MongoDB cung cấp hỗ trợ thương mại. Bạn có thể không quan tâm đến hỗ trợ thương mại tại thời điểm này, nhưng nó là tốt đẹp để biết nó có sẵn.
  4. MongoDB có MapReduce tích hợp sẵn, ElasticSearch thì không. Đây có thể không phải là một điều lớn, nhưng đáng chú ý.

Ý kiến ​​cá nhân của tôi là tôi sẽ không sử dụng ElasticSearch nếu bạn không thể mất dữ liệu. Tôi có thể thấy bằng cách sử dụng ElasticSearch làm kho dữ liệu chính cho thứ gì đó yêu cầu phân tích thời gian thực, nhưng không có bất kỳ yêu cầu lưu giữ dữ liệu dài hạn nào. Nếu không, tôi sẽ đề nghị sử dụng MongoDB và ElasticSearch cùng nhau. Có một Plugin MongoDB River cho ElasticSearch. Điều này giúp dễ dàng cập nhật chỉ mục ElasticSearch một cách tự động.

Các vấn đề liên quan