使用Elasticsearch的時候,我們常常需要關注數據存儲在Elasticsearch中的存儲容量。下面,我們來了解一下Elasticsearch中的數據是如何存儲。
一、Elasticsearch索引結構
Elasticsearch對外提供的是index的概念,可以類比爲MySQL DB,用戶查詢是在index上完成的,每個index由若幹個shard組成,以此來達到分布式可擴展的能力。比如下圖是一個由10個shard組成的index。
- 正排數據:搜索引擎的通用叫法,即原始數據,可以理解爲一個doc list。
- doc values:Elasticsearch中的列式存儲的名稱,Elasticsearch除了存儲原始數據、倒排索引,還存儲了一份doc values,用作分析和排序。doc values 的存在是因爲倒排索引只對某些操作是高效的。 倒排索引的優勢在于查找包含某個項的文檔,而對于從另外一個方向的相反操作並不高效,即:確定哪些項是否存在單個文檔裏,聚合需要這種次級的訪問模式。

