Elasticsearch是一個高度可伸縮的開源全文搜索和分析引擎,是一個基於Lucene的搜索服務器。它容許你以近實時的方式快速存儲、搜索和分析大量的數據。它一般被用做基礎的技術來賦予應用程序複雜的搜索特性和需求。node
除了先了解es裏面的概念外,安裝教程也是必不可少的,能夠參考此文章哦~數據庫
1.NRTjson
Elasticsearch是一個近實時性(Near Realtime[NRT])的搜索平臺。這意味着當你導入一個文檔並把它變成可搜索的時間僅會有輕微的延時。服務器
2.cluster併發
表明一個集羣,集羣中有多個節點,經過全部的節點一塊兒保存你的所有數據而且提供聯合索引和搜索功能的節點集合 ,其中有一個爲主節點,這個主節點是能夠經過選舉產生的,主從節點是對於集羣內部來講的。es的一個概念就是去中心化(注意:和區塊鏈中的去中心化意思不一樣哦),字面上理解就是無中心節點,這是對於集羣內部來講的,由於從外部來看es集羣,在邏輯上是個總體,你與任何一個節點的通訊和與整個es集羣通訊是等價的。app
3.Node 與 Cluster負載均衡
Elastic 本質上是一個分佈式數據庫,容許多臺服務器協同工做,每臺服務器能夠運行多個 Elastic 實例。單個 Elastic 實例稱爲一個節點(node)。一組節點構成一個集羣(cluster)。curl
4.Indextcp
Elastic 會索引全部字段,通過處理後寫入一個反向索引(Inverted Index)。查找數據的時候,直接查找該索引。因此,Elastic 數據管理的頂層單位就叫作 Index(索引)。它是單個數據庫的同義詞。每一個 Index (即數據庫)的名字必須是小寫。分佈式
下面的命令能夠查看當前節點的全部 Index。
$ curl -X GET 'http://localhost:9200/_cat/indices?v'
5.Document
Index 裏面單條的記錄稱爲 Document(文檔)。許多條 Document 構成了一個 Index。一個文檔是一個可被索引的數據的基礎單元。 Document 使用 JSON 格式表示.
6.Type
Document 能夠分組,好比weather這個 Index 裏面,能夠按城市分組(北京和上海),也能夠按氣候分組(晴天和雨天)。這種分組就叫作 Type,它是虛擬的邏輯分組,用來過濾 Document。
不一樣的 Type 應該有類似的結構(schema),舉例來講,id字段不能在這個組是字符串,在另外一個組是數值。這是與關係型數據庫的表的一個區別。性質徹底不一樣的數據(好比products和logs)應該存成兩個 Index,而不是一個 Index 裏面的兩個 Type(雖然能夠作到)。下面的命令能夠列出每一個 Index 所包含的 Type。
$ curl 'localhost:9200/_mapping?pretty=true'
根據規劃,Elastic 6.x 版只容許每一個 Index 包含一個 Type,7.x 版將會完全移除 Type。
7.shards
表明索引分片,es能夠把一個完整的索引分紅多個分片,這樣的好處是能夠把一個大的索引拆分紅多個,分佈到不一樣的節點上。構成分佈式搜索。分片的數量只能在索引建立前指定,而且索引建立後不能更改。
分片對於如下兩個主要緣由很重要:
8.replicas
表明索引副本,即複製,es能夠設置多個索引的副本,副本的做用一是提升系統的容錯性,當某個節點某個分片損壞或丟失時能夠從副本中恢復。二是提升es的查詢效率,es會自動對搜索請求進行負載均衡。
複製對於如下兩個主要緣由很重要:
總結一下,每一個索引能夠被切分紅多個分片,一個索引能夠被複制零次(就是沒有複製)或屢次。一旦被複制,每一個索引 將會有一些主分片(就是那些最原始不是被複製出來的分片),還有一些複製分片(就是那些經過複製主分片獲得的分 片)。
主分片和複製分片的數量能夠在索引被建立時指定。索引被建立後,你能夠隨時動態修改複製分片的數量,可是不能 修改主分片的數量。
默認狀況下,在Elasticsearch中的每一個索引被分配5個主分片和一份拷貝,這意味着假設你的集羣中至少有兩個節點, 你的索引將會有5個主分片和5個複製分片(每一個主分片對應一個複製分片,5個複製分片組成一個完整拷貝),總共每一個 索引有10個分片。
9.recovery
表明數據恢復或叫數據從新分佈,es在有節點加入或退出時會根據機器的負載對索引分片進行從新分配,掛掉的節點從新啓動時也會進行數據恢復。
10.river
表明es的一個數據源,也是其它存儲方式(如:數據庫)同步數據到es的一個方法。它是以插件方式存在的一個es服務,經過讀取river中的數據並把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的。
11.gateway
表明es索引快照的存儲方式,es默認是先把索引存放到內存中,當內存滿了時再持久化到本地硬盤。gateway對索引快照進行存儲,當這個es集羣關閉再從新啓動時就會從gateway中讀取索引備份數據。es支持多種類型的gateway,有本地文件系統(默認),分佈式文件系統,Hadoop的HDFS和amazon的s3雲存儲服務。
12.discovery.zen
表明es的自動發現節點機制,es是一個基於p2p的系統,它先經過廣播尋找存在的節點,再經過多播協議來進行節點之間的通訊,同時也支持點對點的交互。
13.Transport
表明es內部節點或集羣與客戶端的交互方式,默認內部是使用tcp協議進行交互,同時它支持http協議(json格式)、thrift、servlet、memcached、zeroMQ等的傳輸協議(經過插件方式集成)。