首先需要明确一点的是,ElasticSearch和MongoDB是不同的技术选型,两者定位不同,是不能混为一谈和相互替代的。
ElasticSearch是企业级搜索引擎
ElasticSearch是用Java语言基于Lucene开发的分布式搜索服务器,对外提供RESTful API,而且慢慢演变成了数据分析和可视化系统(如:ELK)。
ES可以当成是一种特殊的NoSQL。
-
优点:查询性能高、高效分词、支持各类复杂检索、支持海量数据存储;
- 缺点:数据写入性能差、缺乏权限机制、mapping一旦确定就不好变更(索引重建很麻烦)、field是可以动态添加的不利于数据规范。
MongoDB是一款NoSQL数据库
MongoDB是用C++开发的一款NoSQL数据库(面向文档的数据库,BSON格式存储),虽然支持搜索功能,但是索引性能和精确度远不如ElasticSearch。
-
优点:数据写入性能优于ElasticSearch(但比不上Redis)、数据约束性强、完善的权限机制;
-
缺点:只适合数据存储、虽有全文检索但一个集合只能创建一个全文索引。
两者通常搭配使用
在实际项目中,我们通常是将ElasticSearch和MongoDB搭配使用的。MongoDB可作为持久化数据存储仓库,而ElasticSearch作复杂检索工作。千万不要把ES当数据库来使用,因为ES数据结构是不严谨的,一旦涉及索引重建数据全部会丢失,另外也导出不了SQL。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。