999 - Elasticsearch 基本概念
阿新 • • 發佈:2019-12-31
Elasticsearch 簡介
- Elasticsearch是一個高可擴充套件的,全文搜尋分析引擎。
- 可以近實時地儲存、搜尋以及分析海量資料。
- 通常作為底層引擎為應用提供複雜搜尋功能。
- 應用:
- 搜尋功能
- 自動提示
- 聚合分析日誌
- 等等...
Near Realtime(NRT,近實時)
從存入到可搜尋,只有輕微的延遲(約1秒)
Cluster(叢集)
叢集是一個或多個節點(伺服器)的集合。整個叢集共同儲存資料,並提供跨節點的聯合索引與搜尋功能。
叢集由唯一名稱標識,Elasticsearch的預設叢集名稱為“elasticsearch”。
Node(節點)
節點作為叢集的一個伺服器,提供儲存資料,叢集的索引與搜尋功能。
Elasticsearch節點名稱預設為一個隨機的UUID的前7位。
Index(索引)
索引是相似特徵的檔案的集合。例如,你可以同時擁有使用者資料索引、訂單資料索引以及商品目錄索引。
索引由名稱標識(全小寫),通過名稱引用索引對索引中的檔案進行索引、搜尋、更新、刪除等操作。
Type(型別)
已棄用,在將來更高版本中會刪除。
型別作為索引的邏輯分割槽,允許同一個索引中儲存不同型別的檔案,例如使用者型別、部落格型別等。
Document(檔案)
檔案是Elasticsearch的基本資訊單元,例如,一個檔案表示產品,一個檔案表示客戶...
Shards(分片)與Replicas(副本)
單節點受硬碟空間的限制,以及查詢速度會隨著資料增加而變慢。
Elasticsearch將索引拆分為多個分片,每個分片都是一個功能齊全且獨立的索引,儲存到不同的節點上。有兩個好處:
- 可以水平切割/收縮容量。(針對單節點受硬碟空間的限制
- 允許在多個節點上並行操作,從而提高效能和吞吐量。(針對查詢速度會隨著資料增加而變慢
由於在網路/雲環境中,隨時可能發生故障:例如分片/節點不知怎麼下線了或者因任何原因消失。
Elasticsearch允許將分片的一個或多個副本,製作成副本分片或簡稱為副本。使用副本有兩個理由:
- 在分片/節點故障時提供高可用。注意,副本分片不會與原分片存放到同一個節點上。
- 可以擴充套件搜尋量/吞吐量,因為可以在所有副本是並行搜尋。
總而言之,一個索引可以被拆為多個分片,一個分片可以有0到多個副本分片。
Elasticsearch預設5個分片,1份副本,一共10個分片(5個主分片,5個副本分片)。