Elasticsearch認識(一)

中文指南:
https://endymecy.gitbooks.io/elasticsearch-guide-chinese/content/getting-started/README.html

集群(cluster)
一個集群就是由一個或多個節(jié)點組織在一起, 它們共同持有你全部的數(shù)據(jù), 并一起提供索引和搜索功能。 一個集群由一個唯一的名字標識, 這個名字默認就是“elasticsearch”。 這個名字很重要, 因為一個節(jié)點只能通過指定某個集群的名字,來加入這個集群。在生產(chǎn)環(huán)境中顯式地設定這個名字是一個好習慣,但是使用默認值來進行測試/開發(fā)也是不錯的。注意,一個集群中只包含一個節(jié)點是合法的。另外,你也可以擁有多個集群,集群以名字區(qū)分。

節(jié)點(node)
一個節(jié)點是你集群中的一個服務器,作為集群的一部分,它存儲你的數(shù)據(jù),參與集群的索引和搜索功能。 和集群類似, 一個節(jié)點也是由一個名字來標識的, 默認情況下, 這個名字是一個隨機的Marvel角色的名字,這個名字會在節(jié)點啟動時分配給它。這個名字對于管理工作來說很重要,因為在這個管理過程中,你會去確定網(wǎng)絡中的哪些 服務器對應于Elasticsearch集群中的哪些節(jié)點。一個節(jié)點可以通過配置集群名稱的方式來加入一個指定的集群。 默認情況下,每個節(jié)點都會被安排加入到一個叫做“elasticsearch”的集群中,這意味著,如果你在你的網(wǎng)絡中啟動了若干個節(jié)點, 并假定它們能夠相互發(fā)現(xiàn)彼此,它們將會自動地形成并加入到一個叫做“elasticsearch” 的集群中。在一個集群里可以擁有任意多個節(jié)點。而且,如果當前你的網(wǎng)絡中沒有運行任何Elasticsearch節(jié)點,這時啟動一個節(jié)點,會默認創(chuàng)建并加入一個叫做“elasticsearch”的單節(jié)點集群。

索引(index)
一個索引就是一個擁有相似特征的文檔的集合。比如說,你可以有一個客戶數(shù)據(jù)的索引,另一個產(chǎn)品目錄的索引,還有一個訂單數(shù)據(jù)的索引。一個索引由一個名字來 標識(必須全部是小寫字母的),并且當我們要對這個索引中的文檔進行索引、搜索、更新和刪除的時候,都要使用到這個名字。在一個集群中,你能夠創(chuàng)建任意多個索引。

類型(type)
在一個索引中,你可以定義一種或多種類型。一個類型是你的索引的一個邏輯上的分類/分區(qū),其語義完全由你來定。通常,會為具有一組相同字段的文檔定義一個類型。比如說,我們假設你運營一個博客平臺 并且將你所有的數(shù)據(jù)存儲到一個索引中。在這個索引中,你可以為用戶數(shù)據(jù)定義一個類型,為博客數(shù)據(jù)定義另一個類型,當然,也可以為評論數(shù)據(jù)定義另一個類型。

文檔(document)
一個文檔是一個可被索引的基礎信息單元。比如,你可以擁有某一個客戶的文檔、某一個產(chǎn)品的一個文檔、某個訂單的一個文檔。文檔以JSON格式來表示,而JSON是一個到處存在的互聯(lián)網(wǎng)數(shù)據(jù)交互格式。在一個index/type里面,你可以存儲任意多的文檔。注意,一個文檔物理上存在于一個索引之中,但文檔必須被索引/賦予一個索引的type。分片和復制(shards and replicas)一個索引可以存儲超出單個結(jié)點硬件限制的大量數(shù)據(jù)。比如,一個具有10億文檔的索引占據(jù)1TB的磁盤空間,而任一節(jié)點可能沒有這樣大的磁盤空間來存儲或者單個節(jié)點處理搜索請求,響應會太慢。為了解決這個問題,Elasticsearch提供了將索引劃分成多片的能力,這些片叫做分片。當你創(chuàng)建一個索引的時候,你可以指定你想要的分片的數(shù)量。每個分片本身也是一個功能完善并且獨立的“索引”,這個“索引” 可以被放置到集群中的任何節(jié)點上。分片之所以重要,主要有兩方面的原因:允許你水平分割/擴展你的內(nèi)容容量允許你在分片(位于多個節(jié)點上)之上進行分布式的、并行的操作,進而提高性能/吞吐量至于一個分片怎樣分布,它的文檔怎樣聚合回搜索請求,是完全由Elasticsearch管理的,對于作為用戶的你來說,這些都是透明的。在一個網(wǎng)絡/云的環(huán)境里,失敗隨時都可能發(fā)生。在某個分片/節(jié)點因為某些原因處于離線狀態(tài)或者消失的情況下,故障轉(zhuǎn)移機制是非常有用且強烈推薦的。為此, Elasticsearch允許你創(chuàng)建分片的一份或多份拷貝,這些拷貝叫做復制分片,或者直接叫復制。復制之所以重要,有兩個主要原因:在分片/節(jié)點失敗的情況下,復制提供了高可用性。復制分片不與原/主要分片置于同一節(jié)點上是非常重要的。因為搜索可以在所有的復制上并行運行,復制可以擴展你的搜索量/吞吐量總之,每個索引可以被分成多個分片。一個索引也可以被復制0次(即沒有復制) 或多次。一旦復制了,每個索引就有了主分片(作為復制源的分片)和復制分片(主分片的拷貝)。 分片和復制的數(shù)量可以在索引創(chuàng)建的時候指定。在索引創(chuàng)建之后,你可以在任何時候動態(tài)地改變復制的數(shù)量,但是你不能再改變分片的數(shù)量。

默認情況下,Elasticsearch中的每個索引分配5個主分片和1個復制。這意味著,如果你的集群中至少有兩個節(jié)點,你的索引將會有5個主分片和另外5個復制分片(1個完全拷貝),這樣每個索引總共就有10個分片。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容