ElasticSearch 筆記1 - 基礎概念

翻譯自https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html,方便回看。

基礎概念

1. Near Realtime 接近實時

從對文檔創建進行索引開始到該文檔可搜索,大概有1秒的輕微延時。

2. Cluster 集群

集群是一個或多個節點(服務器)的集合,承載著所有節點上的數據,對數據進行聯合索引和搜索。每個集群擁著唯一的id,默認為elasticsearch。一個節點只能加入一個集群,由該集群的唯一id來標識。

在不同的環境中,不要使用相同的集群id,以免節點加錯集群。

一個集群只有一個節點是完全可行的。另外,你可以使用多個獨立的擁有不同id的集群。

3. Node 節點

一個節點是一臺用來存儲數據,并且參與到索引和搜索功能的服務器,屬于集群的一部分。類似集群,一個節點也是通過id來進行識別,默認情況下,這個id是一個隨機的uuid,在節點啟動時進行分配。如果不想使用隨機uuid,可以根據需求自行定義節點id。對于管理節點而言,這個id很重要,它可以用來定位,工作網絡中的哪臺服務器對應elasticsearch集群中的哪個節點。

一個節點可以通過集群id,配置加入到該集群中。默認情況下,每一個節點都會加入一個叫做elasticsearch的集群。這意味著,如果在網絡中啟動很多節點,并且他們都能相互發現,他們會自動組成一個叫做elasticsearch的集群。

單個集群可以擁有任意多個節點。另外,如果當前網絡中沒有工作的節點,啟動一個單獨節點將會默認創建一個叫做elasticsearch的單節點集群。

4. Index 索引

索引是一組具有一定相似度文檔的集合。例如,你可以為客戶數據創建索引,為產品類型創建索引,為訂單數據創建索引。索引由名稱(必須為小寫)唯一標識,用來對文檔進行索引、搜索、更新和刪除操作。

在單一集群中,可以定義任意多的索引。

5. Type 類型

一個索引中,可以定義一個或者多個類型。一個類型是索引的邏輯分類/分區,它的語義完全由用戶決定。總的來說,我們為擁有一組共同字段的文檔定義一個類型。例如,一個運行的博客平臺,把所有數據都存儲在一個索引中。在這兒索引中,可以為用戶數據定義一個類型,博客數據定義一個類型,評論數據定義另一個類型。

6. Document 文檔

文檔是能被索引的基本信息單元。例如,一個客戶一個文檔,一個產品一個文檔,一個訂單一個文檔。文檔的格式為json。

在索引/類型中,可以存儲任意多的文檔。雖然一個文檔物理上存在于索引中,實際上一個文檔可以被索引/分配到一個索引中的類型上。

7. Shards & Replicas 分片 & 副本

一個索引潛在存儲數據的數量,遠遠超出單一節點的物理容量。例如,一個占用1TB磁盤擁有10億文檔的單一索引,不大可能在在單一節點的磁盤用使用,或因為太慢而無法在單一節點上提供搜索查詢。

為解決這個問題,Elasticsearch提供了將索引細分為分片的功能。在創建索引時,可以指定需要分片的數量。每一個分片具有索引的所有功能,并且可以分布在集群中的任意節點上。

分片很重要,因為

1. 允許垂直分裂/減少內容的量

2. 允許在跨分片分布和并行操作(多個節點),以提供性能,增加并發。

分片分布和搜索請求時的文檔聚合機制完全由Elasticsearch來管理,并且對用戶透明。

在網絡/云環境中,失敗是隨機可能發生的,因此能夠防止分片/節點由于意外宕機的災備策略是相當有用且強烈推薦的。總的來說,Elasticsearch可以創建一個或多個索引分片的拷貝到副本分片中,簡稱為副本。

副本很重要,因為

1. 副本提供高可用性,以防分片/節點宕機。因之,要注意一個副本分片不能和它的原副本位于相同的節點上

2. 副本可以降低搜索量/吞吐量,因為搜索可以在所有副本上并行執行。

總而言之,每一個索引可以劃分為多個分片。索引可以被復制為零(無副本)至多份。索引一旦被復制,它將會擁有主分片(被復制的原始分片)和從分片(主分片的拷貝)。分片和副本的數量可在索引被創建時逐一配置。當索引創建后,副本的數量可以動態調整,但分片的數量則不能改動。

默認的,Elasticsearch會為每個索引分配5個主分片和1個副本。這意味著,當前集群中至少要有2個節點,其中每個索引會有5個主分片和5個副本分片(即一個完整副本),共10個分片/索引。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 博客原文一博客原文二 翻譯作品,水平有限,如有錯誤,煩請留言指正。原文請見 官網英文文檔 起步 Elasticse...
    rabbitGYK閱讀 3,286評論 0 68
  • Elasticsearch 架構以及源碼概覽 Elasticsearch是最近兩年異軍突起的一個兼有搜索引擎和No...
    meng_philip123閱讀 4,347評論 1 36
  • 簡介 Elasticsearch是一個高可擴展的開源全文搜索和分析引擎,它允許存儲、搜索和分析大量的數據,并且這個...
    零度沸騰_yjz閱讀 5,544評論 0 8
  • Elasticsearch 架構以及源碼概覽 Elasticsearch是最近兩年異軍突起的一個兼有搜索引擎和No...
    meng_philip123閱讀 2,400評論 2 47
  • 在丫小丫生活過的二十六年里,字典里從來都沒有“溫柔”二字!聽到別家姑娘溫柔細語的聲音,她不像一般人那樣感受到如沐春...
    若水寒閱讀 416評論 0 2