有一些概念是Elasticsearch的核心,從一開始就理解這些概念將極大地幫助簡化學習過程。html
Elasticsearch是一個近乎實時的搜索平臺,這意味着從索引文檔到可搜索文檔的時間有一點延遲(一般是一秒)。apache
集羣是一個或多個節點(服務器)的集合,它們共同保存您的整個數據,並提供跨全部節點的聯合索引和搜索功能。集羣由一個惟一的名稱標識,默認狀況下這個名稱是「elasticsearch」。這個名稱很重要,由於若是節點被設置爲以這個名稱加入集羣,那麼節點才能是集羣的一部分。json
確保不要在不一樣的環境中重用相同的集羣名稱,不然可能會致使節點加入錯誤的集羣。例如,你可使用logging-dev
、logging-stage
和logging-prod
進行開發、階段和生產集羣。segmentfault
節點是做爲羣集一部分的單個服務器,存儲數據並參與羣集的索引和搜索功能。就像羣集同樣,節點由名稱標識,默認狀況下,該名稱是在啓動時分配給節點的隨機通用惟一標識符(UUID)。若是不想要默認的節點名,能夠定義任何想要的節點名。此名稱對於管理目的很是重要,你能夠在其中識別網絡中哪些服務器與Elasticsearch集羣中的哪些節點相對應。服務器
節點能夠被配置爲經過集羣名稱加入特定的集羣。默認狀況下,每一個節點都設置爲加入名爲elasticsearch
的集羣,這意味着若是你在網絡上啓動了許多節點而且假設它們能夠相互發現 - 它們將自動造成並加入名爲elasticsearch
的單個集羣。網絡
在單個羣集中,你能夠擁有任意數量的節點。此外,若是你的網絡上當前沒有其餘Elasticsearch節點正在運行,則默認狀況下,啓動單個節點將造成名爲elasticsearch
的新單節點集羣。elasticsearch
索引是具備某些相似特徵的文檔集合。例如,你能夠擁有客戶數據的索引,產品目錄的另外一個索引以及訂單數據的另外一個索引。索引由名稱標識(必須所有小寫),此名稱用於在對其中的文檔執行索引,搜索,更新和刪除操做時引用索引。ide
在單個羣集中,你能夠根據須要定義任意數量的索引。性能
在6.0.0中已棄用
參見 刪除映射類型
一種類型,曾經是索引的邏輯類別/分區,容許你在同一索引中存儲不一樣類型的文檔,例如一種類型用於用戶,另外一種類型用於博客帖子。再也不可能在索引中建立多個類型,而且將在更高版本中刪除類型的整個概念,更多信息請參見刪除映射類型。學習
文檔是能夠被索引的基本信息單元。例如,你能夠爲一個客戶提供一個文檔,爲一個產品提供另外一個文檔,爲一個訂單提供另外一個文檔,該文檔用JSON (JavaScript對象表示法)表示,這是一種廣泛存在的internet數據交換格式。
在索引/類型中,能夠存儲任意數量的文檔,請注意,儘管文檔在物理上駐留在索引中,但實際上文檔必須被索引/分配到索引中的類型中。
索引可能存儲大量可能超過單個節點的硬件限制的數據。例如,佔用1TB磁盤空間的十億個文檔的單個索引可能不適合單個節點的磁盤,或者可能太慢而沒法單獨從單個節點提供搜索請求。
爲了解決這個問題,Elasticsearch提供了將索引細分爲多個稱爲碎片的能力,建立索引時,只需定義所需的碎片數便可。每一個碎片自己都是一個功能齊全且獨立的「索引」,能夠託管在集羣中的任何節點上。
碎片之因此重要,主要有兩個緣由:
碎片的分佈方式以及如何將其文檔聚合回搜索請求的機制徹底由Elasticsearch管理,對用戶而言是透明的。
在隨時均可能發生故障的網絡/雲環境中,這很是有用,強烈建議使用故障轉移機制,以防碎片/節點以某種方式脫機或因任何緣由消失。爲此,Elasticsearch容許你將索引的碎片的一個或多個副本製做成所謂的副本碎片或簡稱副本。
複製之因此重要,主要有兩個緣由:
總而言之,每一個索引能夠拆分爲多個碎片,索引也能夠複製爲零(表示沒有副本)或更屢次。複製後,每一個索引都將具備主碎片(從中複製的原始碎片)和副本碎片(主碎片的副本)。
能夠在建立索引時爲每一個索引定義碎片和副本的數量。建立索引後,你還能夠隨時動態更改副本數,你可使用_shrink和_split API更改現有索引的碎片數,但這不是一項簡單的任務,預先計劃正確數量的碎片是最佳方法。
默認狀況下,Elasticsearch中的每一個索引都分配了5個主碎片和1個副本,這意味着若是羣集中至少有兩個節點,則索引將包含5個主碎片和另外5個副本碎片(1個完整副本),總計爲每一個索引10個碎片。
每一個Elasticsearch碎片都是Lucene索引,單個Lucene索引中能夠包含最大數量的文檔。從 LUCENE-5843開始,這個極限是2,147,483,519
(=Integer.MAX_VALUE - 128
)個文檔,你可使用 _cat/shards API監視碎片大小。
有了這些,讓咱們開始有趣的部分……