1毁嗦、索引 Index
ElaticSearch將數據存放在一個或多個索引當中鼠锈。一個索引相當于一個數據庫,里面存放用戶文檔數據惜索。在底層,ElasticSearch實際上還是
使用Lucene完成讀寫數據的操作绍在,ElasticSearch索引是由一個或多個Lucene索引組成门扇,所以ES中的分片或副本實際上就是一個Lucene索引。
2偿渡、文檔 Document
文檔是ES中主要的實體臼寄,所有ES的查詢都是基于存放在ES中文檔資源的查詢。每個文檔都是由各種域(Field)組成溜宽,每個域(Field)有一個名
稱和一個或多個值構成吉拳。實際上,從用戶的角度看适揉,一個ES文檔就是一個JSON對象留攒。
3煤惩、映射 Mapping
映射用于定義文檔域的屬性,這些屬性包括分詞器炼邀,字段類型魄揉,存儲類型等。對于沒有定義的字段類型的屬性拭宁,ES可以自動通過其字段值進行
識別洛退。
4、類型 Type
ES中每個文檔必須有一個類型定義杰标。這里的類型相當于數據庫當中的表兵怯,類型定義了字段映射(類似數據庫表結構),這樣一來腔剂,每個索引可以包含多種文檔類型媒区,而每種文檔類型定義一種映射關系。
5掸犬、節(jié)點 Node
ElasticSearch Server的一個實例稱作一個節(jié)點袜漩,每個節(jié)點都知道所有文檔所處的位置并能夠將請求直接轉發(fā)給擁有數據的節(jié)點。
【號外】:Master Node
集群啟動后會將某個節(jié)點選為Master Node登渣,Master Node主要負責管理集群中諸如創(chuàng)建或刪除索引噪服、從集群中添加或刪除節(jié)點等集群范圍的
改變,Master Node不會關心基于文檔的改變或檢索胜茧。
6粘优、集群 Cluster
多個ES節(jié)點工作在一起組成一個集群。ES對于集群的支持幾乎是無縫的呻顽,這也是ES重要的競爭優(yōu)點之一雹顺。
7、分片 Shard
ES集群環(huán)境下是將索引數據打散存放在多個節(jié)點上的廊遍,所以每個節(jié)點實際存放了ES索引的一部分嬉愧,而這部分索引本質上就是Lucene的物理索引,在ES中也稱作“分片”喉前,分片過程是ES自動執(zhí)行并且對用戶來說是可見没酣,所以分片是基于索引的分片。在現(xiàn)在ES的版本1.3.1卵迂,每個索引分片數在創(chuàng)建時指定后不能改變裕便。
8、副本 Replia
副本就是分片的一個拷貝见咒,不僅能提高自身容災偿衰,另外,請求量很大的情況下,副本可以分擔主Shard壓力下翎,承擔查詢功能缤言。副本個數還以在創(chuàng)
建完索引后靈活調整。
9视事、網關 Getway
ES會將各種集群狀態(tài)信息胆萧、索引配置信息等全部持久存放在網關中。
10郑口、路由 Routing
ES給每個文檔建索引后鸳碧,通過路由可以算出所查的文檔處在哪個分片上,因為在建立索引之初使用公式:shard = hash(routting) % number_of_pr
imary_shards進行文檔分配犬性。routing值是一個任意的字符串,默認是文檔的ID腾仅,通過人工指定就可以控制文檔存放在哪個shard的位置了乒裆。
11、索引別名 Index Alias
索引別名相當于快捷方式或軟鏈接推励,可以指向一個或多個索引鹤耍,甚至可以指向帶路由的分片啼县。
12近速、近實時性 near realtime (nrt)
Elasticsearch是一個近實時性的搜索平臺还棱,所以對于剛建過的索引文件進行查詢時需要一個輕微的等待時間(通常為1秒)判族。