MongoDB作为NoSQL数据库提供的优于ElasticSearch的优势

时间:2012-06-13 10:02:15

标签: c# .net mongodb cloud elasticsearch

我对NoSql数据库很陌生,但我真的很喜欢带有官方c#驱动程序的MongoDB。它目前是我正在编写的MVC应用程序的后端,简单性和速度使我的生活变得更容易。

但是我已经在应用程序中找到了我需要非常棒的搜索。我曾经使用Solr,但对ElasticSearch非常感兴趣。

据我所知,ElasticSearch(从一个非常肤浅的层面)可以完成MongoDB在文档数据库方面的所有工作。

所以,如果我已经在使用NoSql数据库,并且我需要很好的搜索,那么Mongo中有什么意义吗?用例是什么?

Mongo更快吗?更容易使用?它是BSON数据类型和驱动程序吗?为什么不使用ElasticSearch作为我的DB?

我目前正在使用AppHarbor并且喜欢“The Cloud”。我讨厌IT,只想专注于我的应用程序。话虽如此,我到目前为止看到的唯一优势是:

  • 已经有很多“云”MongoDB提供商。使用ElasticSearch,我必须自己设置它。

1 个答案:

答案 0 :(得分:3)

这是一个非常好的问题。我问自己同样的问题,并得出以下答案。

  1. ElasticSearch没有很好的备份数据方法。例如,快速搜索“ElasticSearch backup”和“mongodb backup”。 MongoDB提供了有关如何备份数据的工具和文档。虽然有关于如何备份ElasticSearch数据的文档,但此文档似乎并不成熟。
  2. 一般来说,MongoDB有更好的文档。特别是它的管理文档比ElasticSearch好得多。
  3. MongoDB提供商业支持。您可能不关心目前的商业支持,但很高兴知道它可用。
  4. MongoDB内置了MapReduce,ElasticSearch没有。这可能不是一件大事,但值得注意。
  5. 我个人认为,如果你不能丢失数据,我就不会使用ElasticSearch。我可以看到将ElasticSearch用作需要实时分析的主要数据存储,但没有任何长期数据保留要求。否则,我建议一起使用MongoDB和ElasticSearch。 ElasticSearch有一个MongoDB River插件。这使得自动更新ElasticSearch索引变得非常容易。

相关问题