elasticsearch基本概念

基本概念

elasticsearch有幾個核心概念。一開始就能理解這些概念對後面的學習會有極大的幫助。html

近實時(NRT)

Elasticsearch是一個近乎實時的檢所平臺。意味着從索引一個文檔(document)到該文檔能夠被檢索以前會稍有延遲。node

集羣

集羣指一個或多個節點的集合,它們能夠承載所有數據並提供跨全部節點的聯合索引和檢索。集羣名稱由統一的名稱來標識,默認集羣名稱爲elasticsearch。這個名稱很重要,由於節點加入集羣,只經過集羣名稱進行識別。apache

確保在不一樣的環境中使用了不一樣的集羣名稱,不然會出現節點加錯集羣的狀況。例如你能夠用 logging-devlogging-stage, 和 logging-prod 來區別development、staging和production集羣。此外,你能夠用各自惟一的集羣名稱來創建多個互相獨立的集羣。json

集羣內只有單個節點也是能夠的。api

節點

節點是集羣內的獨立server,用來存儲數據,在集羣內參與索引和檢索。和集羣相似,一個節點(node)根據節點名稱進行區分,節點名稱即在啓動時分配的一個隨機的UUID。若是不想使用默認的,能夠定義節點名稱。從管理角度來看,該名稱很重要。網絡

一個節點能夠經過配置(配置文件中的)集羣名稱來加入特定集羣。默認,每一個節點都加入一個名叫elasticsearch的集羣,這意味着若是在網絡中開啓了幾個節點(假設他們能夠發現彼此),它們會自動通知而且加入一個叫elasticsearch的集羣。elasticsearch

在單個集羣中,節點能夠任意多。另外,若是沒有節點運行elasticsearch,這次開啓一個es節點會造成一個新的單節點集羣,該集羣名叫elasticsearch。分佈式

索引

索引是具備類似特色的文檔(documents)的集合。例如,你能夠爲用戶數據建立一個索引,爲產品目錄建立一個索引,爲訂單數據建立另外一個索引。索引經過索引名稱(必須都是小寫字符)來進行區分,當進行索引、檢索、更新和刪除文檔時,涉及到索引名稱。ide

在集羣中,你能夠定義任意多的索引。性能

樣式

在一個索引中,你能夠定義一種或多種樣式。一種樣式是索引的邏輯分類、分割。一般,具備共有字段的一組文檔定義爲一個類型。例如,假設你運行一個博客平臺,將全部數據存儲爲一個索引。在這個索引中,你能夠給用戶數據定義一個樣式,能夠爲博客數據定義一個樣式,能夠爲評論數據定義一個樣式。

文檔

文檔是能夠索引的基本信息單元。例如,若是你能夠爲一個客戶建立一個文檔,爲一個產品建立一個文檔,爲一個訂單建立一個索引。文檔以json格式呈現,一種無處不在的互聯網數據交換格式。

在一個索引/樣式中,你能夠存儲任意多的文檔。注意雖然文檔存在於索引中,它必須被索引/分配到索引內的一種樣式中。

 

分片和副本

一個索引能夠存儲超出單個節點硬件限制的數據。例如,佔用了1TB硬件空間的十億條文檔的索引可能並不適合放在一個節點上,或者會出現檢索請求過慢的問題。

爲了解決這個問題,Elasticsearch提供了分片,它能夠將一個索引劃分爲多片。當你建立了一個索引,你能夠定義你指望的分片數量。每一片都是全功能獨立的索引,它能夠放在集羣內的任意一個節點上。

分片的重要性體如今兩個主要的緣由上:

  • 它容許你水平分割內容卷組
  • 你能夠分佈式地並行地執行操做,增長了性能和吞吐量

分片如何分佈,檢索如何聚合文檔等這些機制都徹底由Elasticsearch管理,對於用戶是透明的。

在網絡/雲環境中,失敗無處不在,很是有必要創建一套容錯機制,以防出現分片/節點下線或者丟失。爲此,Elasticsearch容許用戶爲索引的多個分片建立一份或多份副本,交錯分片副本集,或簡稱副本。

副本的重要性體如今如下兩點:

  • 在分片、節點失效時提供高可用。所以一個分片副本集永遠不要位於同一個節點
  • 能夠擴展檢索卷/吞吐量,由於檢索操做能夠並行在全部的副本上同時執行

總而言之,每一個索引能夠分紅多片。一個索引能夠複製零次(即沒有副本)或屢次。一旦創建副本,每一個索引都會具備主分片(能夠用來進行復制副本的分片)和副本分片(主分片的複製)。在索引一建立時能夠指定每一個索引的分片個數和副本個數。索引建立好後,你能夠動態改變副本的數量,但不能改變分片的數量。

默認狀況下,Elasticsearch每一個索引有5個主分片和一個副本集,意味着若是集羣中有兩個節點,你的索引會有5個主分片和5個副本分片,每一個索引總共是10個分片。

 

Note

每一個Elasticsearch分片是一個Lucence索引。在單個Lucence索引中有文檔數存在上限。根據LUCENE-5843

,限制爲2,147,483,519個文檔。你可使用api_cat/shards檢測分片大小。

 

 

https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html#getting-started-shards-and-replicas

相關文章
相關標籤/搜索