1. 程式人生 > 程式設計 >999 - Elasticsearch 基本概念

999 - Elasticsearch 基本概念

Elasticsearch 簡介

  • Elasticsearch是一個高可擴充套件的,全文搜尋分析引擎。
  • 可以近實時地儲存、搜尋以及分析海量資料。
  • 通常作為底層引擎為應用提供複雜搜尋功能。
  • 應用:
    • 搜尋功能
    • 自動提示
    • 聚合分析日誌
    • 等等...

Near Realtime(NRT,近實時)

從存入到可搜尋,只有輕微的延遲(約1秒)

Cluster(叢集)

叢集是一個或多個節點(伺服器)的集合。整個叢集共同儲存資料,並提供跨節點的聯合索引與搜尋功能。
叢集由唯一名稱標識,Elasticsearch的預設叢集名稱為“elasticsearch”。

Node(節點)

節點作為叢集的一個伺服器,提供儲存資料,叢集的索引與搜尋功能。
Elasticsearch節點名稱預設為一個隨機的UUID的前7位。

Index(索引)

索引是相似特徵的檔案的集合。例如,你可以同時擁有使用者資料索引、訂單資料索引以及商品目錄索引。
索引由名稱標識(全小寫),通過名稱引用索引對索引中的檔案進行索引、搜尋、更新、刪除等操作。

Type(型別)

已棄用,在將來更高版本中會刪除。
型別作為索引的邏輯分割槽,允許同一個索引中儲存不同型別的檔案,例如使用者型別、部落格型別等。

Document(檔案)

檔案是Elasticsearch的基本資訊單元,例如,一個檔案表示產品,一個檔案表示客戶...

Shards(分片)與Replicas(副本)

單節點受硬碟空間的限制,以及查詢速度會隨著資料增加而變慢。
Elasticsearch將索引拆分為多個分片,每個分片都是一個功能齊全且獨立的索引,儲存到不同的節點上。有兩個好處:

  • 可以水平切割/收縮容量。(針對單節點受硬碟空間的限制
  • 允許在多個節點上並行操作,從而提高效能和吞吐量。(針對查詢速度會隨著資料增加而變慢

由於在網路/雲環境中,隨時可能發生故障:例如分片/節點不知怎麼下線了或者因任何原因消失。
Elasticsearch允許將分片的一個或多個副本,製作成副本分片或簡稱為副本。使用副本有兩個理由:

  • 在分片/節點故障時提供高可用。注意,副本分片不會與原分片存放到同一個節點上。
  • 可以擴充套件搜尋量/吞吐量,因為可以在所有副本是並行搜尋。

總而言之,一個索引可以被拆為多個分片,一個分片可以有0到多個副本分片。
Elasticsearch預設5個分片,1份副本,一共10個分片(5個主分片,5個副本分片)。