MongoDB vs ElasticSearch

Posted 逻辑编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB vs ElasticSearch相关的知识,希望对你有一定的参考价值。

    MongoDB是BSON/JSON文档数据库。 


    ElasticSearch是基于Lucene的文档全文检索库。

    

    MongoDB和ElasticSearch有一些相似和可互相替代性:

    - 都接受JSON结构的文档数据。

    - 都可以对数据按照属性做索引。

    - 都可以支持全文索引。

    - 都可以建立集群。

    - 都支持数据的增删改查。


    但是,它们的不同决定了他们的应用场景是不同的:

    - 相比ElasticSearch, MongoDB还是有比较强的实时性。向ElasticSearch插入的数据默认也要1秒钟才能可用。而MongoDB在这方面有更好的事务性,更加类似于传统的数据库。

    - ElasticSearch对所有的属性做索引。因此ElasticSearch默认情况下对查询很友好。ElastichSearch在建立索引的过程如果客户端发送的负荷太大太快则会拒绝并报错。

    - 而MongoDB默认只有_id是有索引的。在MongoDB中查询一个没有索引,或者是不存在的属性,或者查询时属性名字打错,都会引起全集合扫描,在大数量时会引起服务器反应超时并引发性能问题。

    - MongoDB虽然也支持全文索引,但是相对功能较弱。因此用MongoDB做全文索引是不够用的。


    因此,MongoDB是一个数据库,提供了一定的事务性,适合做事务处理。ElasticSearch则是有很强的索引和搜索支持,但是事务处理能力很弱。他们不能互相取代。结合各自的优缺点综合利用还是不错的:由于都是文档方式的数据格式,他们之间可以做到比较容易的数据交互。


    


    

以上是关于MongoDB vs ElasticSearch的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb的僧侣vs猫鼬

Mongodb的僧侣vs猫鼬

Python-Mongodb vs mysql

MongoDB + Neo4J vs OrientDB vs ArangoDB [关闭]

Tokumx vs Mongodb

MongoDB vs ElasticSearch