基本概念:
Cluster
節(jié)點(diǎn)集群通過(guò)集群名稱(chēng)區(qū)分,默認(rèn)名稱(chēng)是elasticsearch
。
Node
沒(méi)有節(jié)點(diǎn)都有一個(gè)隨機(jī)的UUID (Universally Unique Identifier)來(lái)作為節(jié)點(diǎn)名稱(chēng)。
Index
索引是指具有相似特性的文檔集合。每個(gè)索引也是用名稱(chēng)來(lái)標(biāo)示的,這個(gè)名稱(chēng)會(huì)用來(lái)進(jìn)行文檔索引、搜索、更新和刪除等索引操作。(Index <-> DataBase)
- 索引的名稱(chēng)必需全部是小寫(xiě)字符
- 在單個(gè)集群中可以定義多個(gè)索引
Type
在一個(gè)Index中可以定義多個(gè)Type,一個(gè)Type是索引的一個(gè)邏輯的分類(lèi)或劃分。通常我們將具有一組相同字段的文檔集合定義為同一個(gè)Type。(Type <-> Table)
Document
Document 我們稱(chēng)之為文檔,它代表了一個(gè)能被索引的最小數(shù)據(jù)單元。在一個(gè)Index或者Type中,我們可以存儲(chǔ)很多條文檔。
雖然文檔是物理存儲(chǔ)在Index中的,但是實(shí)際上它必需被索引或者分配到Index中的一個(gè)Type上。
Shards & Replicas
Shard:
一個(gè)索引能存儲(chǔ)的數(shù)據(jù)量可能超過(guò)其硬件的支持。單節(jié)點(diǎn)的文檔存貯達(dá)到一定量級(jí)可能導(dǎo)致查詢搜索過(guò)慢的問(wèn)題。為了解決這樣的問(wèn)題,ES提供分片的支持,所謂分片就是將Index分為多個(gè)片。在我們創(chuàng)建索引的時(shí)候就可以簡(jiǎn)單的定義Shard
的個(gè)數(shù)。
每一個(gè)
Shard
都是一個(gè)獨(dú)立的全功能的 'Index',bing qie并且能寄存在集群中任意的節(jié)點(diǎn)上。
- 分片技術(shù)允許你去水平切分和擴(kuò)展內(nèi)容池
- 分片技術(shù)允許你去分布式的并且平行的放置
Shard
來(lái)提升性能和吞吐量
至于
Shard
的分布式和搜索結(jié)果聚合機(jī)制完全封裝在ES內(nèi)部,對(duì)開(kāi)發(fā)者透明。
Replicas:
在一般的網(wǎng)絡(luò)環(huán)境或者云環(huán)境下,我們可能面臨著隨時(shí)崩潰的風(fēng)險(xiǎn),我們需要提高系統(tǒng)的容錯(cuò)和崩潰處理機(jī)制。為了解決這樣的問(wèn)題,ES允許我們創(chuàng)建一個(gè)或多個(gè)Shard
的副本,稱(chēng)之為Replica Shard
。
- 副本不允許放置于同一個(gè)節(jié)點(diǎn)上,這樣才能起到分片和節(jié)點(diǎn)容錯(cuò)作用
- 副本同樣可以提高系統(tǒng)的容量及吞吐量,因?yàn)椴樵儾僮骺梢栽谒械母北旧掀叫械膱?zhí)行