ElasticSearch 基礎概念和組成部分
1)ElasticSearch概念一句話總結:
ES是一個基於Lucene並採用Restful API 標準的高可擴展性和高可用性的實時數據分析的全文檢索工具
2)ElasticSearch涉及到的一些概念:
NRT(準實時): Elasticsearch是一個接近實時的搜索平臺。這意味着,從索引一個文檔直到這 個文檔能夠被搜索到有一個輕微的延遲(通常是1秒)
Node(節點):單個的裝有ElasticSearch服務並且提供故障轉移和擴展的服務器
Cluster(集羣):一個集羣就是由一個或多個Node組織在一起共同工作,共同分享整個數據具有負載均衡功能的集羣,集羣名稱是唯一標識,因爲一個節點只能通過指定某個集羣的名字,來加入這個集羣
Document(文檔):一個文檔是一個可以被索引的基礎信息單元
Index(索引):索引就是一個擁有幾分相似特徵的文檔的集合
Type(類型):一個索引中,你可以定義一種或者多種類型
Field(列):Field是ElasticSearch中最小單位,相當於數據的某一列
Shards(分片):一個索引可以存儲超出單個結點硬件限制的大量數據。比如,一個具有10億文檔的索引佔據1TB的磁盤空間,而任一節點都沒有這樣大的磁盤空間;或者單個節點處理搜索請求,響應太慢。因此ElasticSearch將索引分成若干份,每個部分就是一個shard ,當你創建一個索引的時候,你可以指定你想要的分片的數量。每個分片本身也是一個功能完善並且獨立的“索引”,這個“索引”可以被放置到集羣中的任何節點上。 分片好處就是可以對數據進行水平分割,擴展內容容量,提高查詢性能和吞吐量
Replicas(複製):Replicas是索引的一份或者多份拷貝 提供高可用
分片和複製的數量可以在索引創建的時候指定。在索引創建之後,你可以在任何時候動態地改變複製數量,但是不能改變分片的數量。
3)Es跟關係型數據庫對照如下圖:
4) ElasticSearch架構圖如下: