ES和MongoDB的对比

2024-09-21

ES的核心是冲着全文检索去的,MongoDB的核心是冲着文档存储去的。


全文搜索和文档存储在某种程度上可以被视为对立的或至少是有着不同优化方向的技术,也就是说二者是不能相互兼顾的,只能二选一。



全文搜索的核心在于能够快速有效地检索出包含特定词汇或词组的文档。

为此,搜索引擎(如 Elasticsearch)建立复杂的索引来存储每个词汇的出现位置、频率等信息。

这些索引通常需要快速访问,因此搜索引擎可能会牺牲一些存储效率来提高读取速度。

文档存储的特点:


文档存储(如 MongoDB)主要关注于存储和查询结构化或半结构化数据。

这些系统可能采用不同的存储优化技术,如数据压缩、分片等,以提高存储效率和处理大量数据的能力。

文档数据库的索引通常不是为了全文搜索设计的,而是为了快速查找特定字段或数据结构。

优化方向的差异:


全文搜索引擎的设计重点在于最大化检索效率,特别是在处理大量文本数据时的搜索性能。

文档数据库则更侧重于数据的灵活性、存储效率和结构化查询的性能。


ES拥有更细粒度的查询能力,也就是能对全文进行各种检索,但在文档的存储上要差一点。


MongoDB在文档的存储上更优秀,适合存储海量文档,但是只支持简单的文档搜索,而不是全文检索。