天天看點

Elasticsearch第一篇核心概念

elasticsearch的核心概念

  1. Near Realtime(NRT):近實時,兩個意思,從寫入資料到資料可以被搜尋到有一個小延遲(大概1秒);基于es執行搜尋和分析可以達到秒級
  2. Cluster:叢集:包含多個節點,每個節點屬于哪個叢集是通過一個配置(叢集名稱,預設是elasticsearch)來決定的,對于中小型應用來說,剛開始一個叢集就一個節點很正常
  3. Node:節點,叢集中的一個節點,節點也有一個名稱(預設是随機配置設定的),節點名稱很重要(在執行運維管理操作的時候),預設節點會去加入一個名稱為“elasticsearch”的叢集,如果直接啟動一堆節點,那麼它們會自動組成一個elasticsearch叢集,當然一個節點也可以組成一個elasticsearch叢集
  4. Document&field:文檔,es中的最小資料單元,一個document可以是一條客戶資料,一條商品分類資料,一條訂單資料,通常用JSON資料結構表示,每個index下的type中,都可以去存儲多個document。一個document裡面有多個field,每個field就是一個資料字段。

    如下:

product document

{
  "product_id": "1",
  "product_name": "高露潔牙膏",
  "product_desc": "高效美白",
  "category_id": "2",
  "category_name": "日化用品"
}
           
  1. Index:索引,包含一堆有相似結構的文檔資料,比如可以有一個客戶索引,商品分類索引,訂單索引,索引有一個名稱。一個index包含很多document,一個index就代表了一類類似的或者相同的document。比如說建立一個product index,商品索引,裡面可能就存放了所有的商品資料,所有的商品document。
  2. Type:類型,每個索引裡都可以有一個或多個type,type是index中的一個邏輯資料分類,一個type下的document,都有相同的field,比如部落格系統,有一個索引,可以定義使用者資料type,部落格資料type,評論資料type。

商品index,裡面存放了所有的商品資料,商品document

但是商品分很多種類,每個種類的document的field可能不太一樣,比如說電器商品,可能還包含一些諸如售後時間範圍這樣的特殊field;生鮮商品,還包含一些諸如生鮮保存期限之類的特殊field

type,日化商品type,電器商品type,生鮮商品type

日化商品type:product_id,product_name,product_desc,category_id,category_name

電器商品type:product_id,product_name,product_desc,category_id,category_name,service_period

生鮮商品type:product_id,product_name,product_desc,category_id,category_name,eat_period

每一個type裡面,都會包含一堆document

{

“product_id”: “2”,

“product_name”: “長虹電視機”,

“product_desc”: “4k高清”,

“category_id”: “3”,

“category_name”: “電器”,

“service_period”: “1年”

}

{

“product_id”: “3”,

“product_name”: “基圍蝦”,

“product_desc”: “純天然,冰島産”,

“category_id”: “4”,

“category_name”: “生鮮”,

“eat_period”: “7天”

}

  1. shard:單台機器無法存儲大量資料,es可以将一個索引中的資料切分為多個shard,分布在多台伺服器上存儲。有了shard就可以橫向擴充,存儲更多資料,讓搜尋和分析等操作分布到多台伺服器上去執行,提升吞吐量和性能。每個shard都是一個lucene index。
  2. replica:任何一個伺服器随時可能故障或當機,此時shard可能就會丢失,是以可以為每個shard建立多個replica副本。replica可以在shard故障時提供備用服務,保證資料不丢失,多個replica還可以提升搜尋操作的吞吐量和性能。primary shard(建立索引時一次設定,不能修改,預設5個),replica shard(随時修改數量,預設1個),預設每個索引10個shard,5個primary shard,5個replica shard,最小的高可用配置,是2台伺服器。

Elasticsearch 資料庫

Document 行

Type 表

Index 庫