今天我们就来说一下ES的存储原理(搬着小板凳坐好)。 我们先设想一下,ES是否是直接调用 Fsync 物理性地写入磁盘?答案是否定的,如果是直接写入磁盘,磁盘的 I/O 消耗会严重影响性能,那么当写数据量大的时候会造成 ES 停顿卡死,查询也无法做到快速响应, ES 就不会被称为近实时全文搜索引擎了。那么问题来了,ES 是采用什么方式存储的呢? 首先我们先来说几个概念,然后再具体介绍下它的整个流程及细节处理,方便大家更好的理解。 段 索引文档被拆分成多个子文档,则每个子文档叫作段。段提出来的原因是:在早期全文检索中为整个文档集合建立了一个很大的倒排索引,并将其写入磁盘中。如果索...