基本概念
Near Realtime(NRT)
Elasticsearch是一個(gè)接近于實(shí)時(shí)的搜索平臺(tái)
Cluster
一個(gè)集群是多個(gè)節(jié)點(diǎn)(或稱(chēng)為服務(wù)器)的集合羽资,它們共同持有你的所有數(shù)據(jù)咖摹,并提供聯(lián)合的索引和橫跨所有節(jié)點(diǎn)的搜索能力絮宁。一個(gè)集群被一個(gè)唯一的名字所標(biāo)識(shí)(默認(rèn)為“elasticsearch”)夭委。這個(gè)名字很重要,因?yàn)槿绻粋€(gè)節(jié)點(diǎn)通過(guò)它的名字加入集群的話(huà)调限,一個(gè)節(jié)點(diǎn)只能加入一個(gè)集群麻捻。
確保你在不同的環(huán)境中沒(méi)有復(fù)用同一個(gè)集群名,否則你可能遇到某些節(jié)點(diǎn)加入到了錯(cuò)誤的集群中的情況兼蕊。
Node
一個(gè)節(jié)點(diǎn)是一個(gè)單獨(dú)的服務(wù)器初厚,它是集群的一部分,用來(lái)存儲(chǔ)數(shù)據(jù)孙技、并加入到集群的索引和搜索能力中产禾。一個(gè)節(jié)點(diǎn)也被一個(gè)名字所標(biāo)識(shí)(默認(rèn)是一個(gè)隨機(jī)的UUID)排作,在節(jié)點(diǎn)啟動(dòng)時(shí)賦值給它。你也可以自定義名字下愈。
節(jié)點(diǎn)可以通過(guò)配置集群名加入到某個(gè)集群中去纽绍。默認(rèn)情況下每個(gè)節(jié)點(diǎn)都加入到了“elasticsearch”集群中蕾久。
單個(gè)集群中節(jié)點(diǎn)的數(shù)量是沒(méi)有限制的势似。
Index
索引是具有某些相似特征的文檔的集合。
Type
6.0.0中過(guò)期
Document
文檔是可以被索引的基本信息單元僧著。文檔以JSON的形式表示履因。
Shards & Replicas
一個(gè)索引可以再分為多個(gè)分片(Shards)。當(dāng)你創(chuàng)建索引的時(shí)候盹愚,你可以定義分片的數(shù)量栅迄。每一個(gè)分片本身都是一個(gè)全功能且獨(dú)立的“索引”,可以被托管在集群中的任何一個(gè)節(jié)點(diǎn)上皆怕。
分片之所以重要毅舆,有兩個(gè)主要原因:
- 它允許你水平的拆分內(nèi)容
- 它允許你在多個(gè)分片中分發(fā)和并行的操作,可以提高性能和吞吐量愈腾。
分片被分布和文檔被聚合回搜索請(qǐng)求的機(jī)制完全被Elasticsearch 所管理憋活,并且對(duì)作為用戶(hù)的你來(lái)說(shuō)是透明的。
Elasticsearch允許將索引的分片復(fù)制一份或者多份虱黄,稱(chēng)為復(fù)制分片悦即。
復(fù)制之所以重要,有兩個(gè)主要原因:
- 在某個(gè)分片或節(jié)點(diǎn)失敗的情況下提供了高可用橱乱。由于這個(gè)原因辜梳,我們需要注意,復(fù)制的分片絕不要與它復(fù)制的原分片在同一個(gè)節(jié)點(diǎn)上泳叠。
- 它允許你向外擴(kuò)展你的搜索范圍/吞吐量作瞄,因?yàn)樗阉骺梢栽谒械膹?fù)制分片上并行的執(zhí)行。
總結(jié)一下危纫,每個(gè)索引都可以被分成多個(gè)分片粉洼。一個(gè)索引也可以被復(fù)制多次。一旦被復(fù)制叶摄,每個(gè)索引就會(huì)有主分片和復(fù)制分片属韧。每個(gè)索引分片和復(fù)制的數(shù)量可以在創(chuàng)建索引的時(shí)候被定義。當(dāng)索引被創(chuàng)建后蛤吓,可以在任何時(shí)候動(dòng)態(tài)的改變復(fù)制的數(shù)量宵喂,但是不能改變已經(jīng)分好的分片的數(shù)量。
默認(rèn)情況下会傲,Elasticsearch 中的每個(gè)索引有5個(gè)主分片和一個(gè)復(fù)制锅棕,這意味著如果你的集群中有兩個(gè)節(jié)點(diǎn)的話(huà)拙泽,你的索引將有5個(gè)主分片和另外5個(gè)復(fù)制分片,每個(gè)索引共有10個(gè)分片裸燎。