Elastic Search的結構概念:集羣,節點,分片,備份。 關係數據庫 ⇒ 數據庫 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引 ⇒ 類型 ⇒ 文檔 ⇒ 字段(Fields) 1.Elastic Search 全部的 filed都加索引,倒排索引。 FST 以字節方式存儲全部的term, 這種壓縮方式能夠有效的縮減存儲空間,使得term index 足以放進內存,可是這種方式也會致使查找的時候須要更多地CPU資源。 post list的壓縮技巧:bitmap爲基礎,使用Roaring bitmaps進行進一步壓縮,將posting list按照65535爲界限分塊,好比第一塊所包含的文檔id範圍在0~65535之間,第二塊的id範圍是65536~131071,以此類推。再用<商,餘數>的組合表示每一組id,這樣每組裏的id範圍都在0~65535內了,剩下的就好辦了,既然每組id不會變得無限大,那麼咱們就能夠經過最有效的方式對這裏的id存儲。 2.聯合索引 使用跳錶的數據結構快速作「與」運算,或者利用bitmap按位進行「與」數據庫
3.Elastic Search檢索這麼快: 1.索引,2.壓縮機制【bitmap -> Roaring Bitmap】,3.將磁盤中的東西儘可能搬到內存,減小磁盤隨機讀取次數(同時利用磁盤順序讀特性)。數據結構