elasticsearch,C#,.net,Mongodb,Cloud,elasticsearch" /> elasticsearch,C#,.net,Mongodb,Cloud,elasticsearch" />

C# MongoDB仅作为NoSQL数据库,与ElasticSearch相比有哪些优势

C# MongoDB仅作为NoSQL数据库,与ElasticSearch相比有哪些优势,c#,.net,mongodb,cloud,elasticsearch,C#,.net,Mongodb,Cloud,elasticsearch,我对NoSql数据库很陌生,但我真的很喜欢MongoDB和官方的c#驱动程序。它目前是我正在编写的MVC应用程序的后端,它的简单性和速度让我的生活变得更加轻松 然而,在应用程序中,我已经到了需要非常好的搜索的地步。我曾经使用Solr,但现在对ElasticSearch非常感兴趣 ElasticSearch,据我所知(从一个非常肤浅的层面来看),可以做MongoDB作为文档数据库所能做的一切 所以,如果我已经在使用NoSql数据库,并且我需要很好的搜索,Mongo有什么意义吗?用例是什么 Mong

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

然而,在应用程序中,我已经到了需要非常好的搜索的地步。我曾经使用Solr,但现在对ElasticSearch非常感兴趣

ElasticSearch,据我所知(从一个非常肤浅的层面来看),可以做MongoDB作为文档数据库所能做的一切

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

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

我目前正在使用AppHarbor和lovin的“云”。我讨厌它,只想专注于我的应用程序。话虽如此,到目前为止,我看到的唯一优势是:

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

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

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

    有点宽泛。我不认为最快的速度是正确的标准。对于一个小型到中型的应用程序,它们都将产生良好的速度。查看功能和易用性以及开发和支持。安装和维护环境并不是那么难。你有多讨厌它?简言之:多键查找。再长一点,ES+MongoDB的组合是很棒的,我正在一个接近生产的网站上使用它,在Solr/Lucene、Membase和其他替代产品方面有4年以上的经验。最佳实践,至少对我有用:将域模型保存在Mongo中,在ES中进行搜索,但只存储密钥,在ES搜索后在Mongo中进行密钥查找。@Geert Jan为什么?当ES可以在执行多键查找的同时返回文档时。打ES和mongo有什么好处?问题是,我不喜欢ES(或SOLR)作为我数据的权威来源。ES/Solr擅长搜索(在搜索方面非常出色),但我选择RDBMS或成熟的NOSQL解决方案,如用于数据安全/恢复、数据检查等的Mongo。此外,我需要一些数据CMS功能,如版本控制、发布流、ACL访问控制等。祝您使用ES/Solr实现这些功能好运。此外,频繁的更新代价高昂,因为对于文档上的每个更改属性,整个文档都必须使用ES/SolrWho说对于ES???“ES/Solr擅长搜索”