Elasticsearch6基本概念
- 2020 年 1 月 21 日
- 筆記
近實時(Near Realtime, NRT)
Elasticsearch是一個近乎實時的搜索平台。這意味著從索引文檔到可搜索文檔的時間有一點延遲(通常是一秒)。
集群(Cluster )
集群是一個或多個節點(伺服器)的集合,它們共同保存您的整個數據,並提供跨所有節點的聯合索引和搜索功能。群集由唯一名稱標識,默認情況下為「elasticsearch」。此名稱很重要,因為如果節點設置為按名稱加入群集,則該節點只能是群集的一部分。
確保不要在不同的環境中重用相同的群集名稱,否則最終會導致節點加入錯誤的群集。
請注意,如果群集中只有一個節點,那麼它是完全正常的。此外,您還可以擁有多個獨立的集群,每個集群都有自己唯一的集群名稱。
可通過cluster.name
欄位配置。
節點(Node)
節點是作為群集一部分的單個伺服器,存儲數據並參與群集的索引和搜索功能。就像集群一樣,節點由名稱標識,默認情況下,該名稱是在啟動時分配給節點的隨機通用唯一標識符(UUID)。
索引(index )
索引是具有某些類似特徵的文檔集合。
類型(Type)
曾經是索引的邏輯類別/分區,允許您在同一索引中存儲不同類型的文檔,將被棄用。
在Elasticsearch 6.0.0或更高版本中創建的索引可能只包含單個映射類型。在具有多種映射類型的5.x中創建的索引將繼續像以前一樣在Elasticsearch 6.x中運行。映射類型將在Elasticsearch 7.0.0中完全刪除。
文檔(Documentedit)
文檔是可以編製索引的基本資訊單元。以JSON表示。儘管文檔實際上駐留在索引中,但實際上必須將文檔索引/分配給索引(index)中的類型。
分片與副本(Shards & Replicas)
索引可能存儲大量可能超過單個節點的硬體限制的數據。為了解決這個問題,Elasticsearch提供了將索引細分為多個稱為分片的功能。創建索引時,只需定義所需的分片數即可。每個分片本身都是一個功能齊全且獨立的「索引」,可以託管在集群中的任何節點上。
總而言之,每個索引可以拆分為多個分片。索引也可以複製為零(表示沒有副本)或更多次。複製後,每個索引都將具有主分片(從中複製的原始分片)和副本分片(主分片的副本)。
默認情況下,Elasticsearch中的每個索引都分配了5個主分片和1個副本,這意味著如果群集中至少有兩個節點,則索引將包含5個主分片和另外5個副本分片(1個完整副本),總計為每個索引10個分
集群健康
GET /_cluster/health
status 欄位指示著當前集群在總體上是否工作正常。它的三種顏色含義如下:
狀態 |
簡介 |
---|---|
Green |
所有的主分片和副本分片都正常運行。 |
Yellow |
所有的主分片都正常運行,但不是所有的副本分片都正常運行。 |
Red |
有主分片沒能正常運行。 |