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

and*_*ndy 12 .net c# cloud mongodb elasticsearch

我是NoSql数据库的新手,但我真的很喜欢使用官方c#驱动程序的MongoDB.它目前是我正在编写的MVC应用程序的后端,简单性和速度使我的生活更轻松.

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

据我所知,ElasticSearch(从一个非常肤浅的层面)可以完成MongoDB作为文档数据库的所有功能.

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

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

我目前正在使用AppHarbor并且喜欢"云".我讨厌IT,只想专注于我的应用程序.话虽如此,我目前看到的唯一优势是:

  • 已经有一些"云"MongoDB提供商.使用ElasticSearch我必须自己设置它.

Sha*_*n H 3

这个问题问得好。我问了自己同样的问题并得出了以下答案。

\n\n
    \n
  1. ElasticSearch 没有\xe2\x80\x99t 备份数据的好方法。例如,快速搜索 \xe2\x80\x9cElasticSearch backup\xe2\x80\x9d 和 \xe2\x80\x9cmongodb backup\xe2\x80\x9d。MongoDB 有有关如何备份数据的工具和文档。虽然有关于如何备份 ElasticSearch 数据的文档,但该文档似乎并不成熟。
  2. \n
  3. 一般来说,MongoDB 有更好的文档。特别是它的管理文档比 ElasticSearch 好得多。
  4. \n
  5. MongoDB 提供商业支持。您目前可能不关心商业支持,但很高兴知道它可用。
  6. \n
  7. MongoDB 内置了 MapReduce,而 ElasticSearch 没有。这可能不是什么大事,但值得注意。
  8. \n
\n\n

我个人的观点是,如果您无法承受丢失数据的后果,我不会\xe2\x80\x99 使用 ElasticSearch。我可以考虑使用 ElasticSearch 作为需要实时分析的主要数据存储,但没有任何长期数据保留要求。否则,我建议一起使用 MongoDB 和 ElasticSearch。有一个用于 ElasticSearch 的 MongoDB River 插件。这使得自动更新 ElasticSearch 索引变得非常容易。

\n