1 elasticsearch 概念學習

2021-07-25 08:12:47 字數 2130 閱讀 5216

1.什麼是elasticsearch?

elastic是一款開源,可擴充套件全文搜尋和分析的一款構建在lucene之上的框架。它允許我們實時快速的儲存,搜尋,分析大容量資料。github的搜尋好像就是用elasticsearch做的。

2.elasticsearch的一些基本概念

cluster:

1.代表乙個集群,集群中有多個節點(每個節點上都是相同的資料)

2.預設cluster名字是elasticsearch,要注意的是乙個節點只能屬於乙個cluster,

而區分cluster就是用名字來區分,因此不通的cluster名字不能相同。

node: 

1.它是cluster的一部分,用來儲存資料,並提供集群的索引和搜尋功能。

2.node都會有乙個名字,啟動時預設是隨機生成的名字,但是我們可以自己指定名稱。

乙個node節點可以配置加到cluster上,預設是加入到elasticsearch這個cluster上面。

3.一般在乙個cluster上,我們自己可以配置多個node,如果要配置多個node,

那麼可以再啟用elasticsearch服務來啟動乙個程序,

要注意的是新啟動的elasticsearch裡面配置檔案elasticsearch.ymal配置的cluster.name必須一樣

在data/elasticsearch下可以發現有nodes資料夾,存在資料夾0,這個資料夾所說的節點.

index:

索引是document的乙個集合.

比如我們有一些客戶的資料索引,另外還有乙個產品的資料索引和訂單的資料索引。

乙個索引必須用小寫來指定名字,名字對於索引,搜尋,更新,刪除操作是很重要的。

如果很難理解那麼我們可以認為這個就是資料庫。(如果建立過自己index,比如叫firsttime,

那麼在elasticsearch-xx/data/elasticsearch/0/indices下可以發現有firsttime資料夾,

這個資料夾名字就是對應index名字,裡面存放了索引資料)

type:

對於type就是對index的更細的乙個劃分。我們可以基於index上定義更多的type。

既然我們能把index理解成資料庫,那麼type就是資料庫中的表了。

document:

我們可以把它理解成資料庫表的一條條資料(row)。這個是被索引的最基本單元。

shards:

1.分片,如果我們的索引資料很大,超出了硬體存放的單個檔案限制(linux下就有限制),

那麼會發生問題的,而且也會影響搜尋請求的速度。因此elasticsearch就引入了這個shards技術了。

2.當我們建立乙個索引,我們能簡單的定義很多個分片,

每個分片都有自己搜尋,更新,刪除等和index一樣全部功能的一小塊。

分片shards的好處是可以讓我們水平分割和擴充套件我們存放的內容索引,

同時還可以讓我們分發和(在多個節點可能)並行跨碎片操作從而提高效能/吞吐量。

3.可以發現在elasticsearch-xx/data/elasticsearch/0/indices/firsttime下

有預設5個shared從0-4

replicas:

1.當某個節點某個分片損壞或丟失時可以從副本中恢復。

2.提高es的查詢效率,es會自動對搜尋請求進行負載均衡。replicas可以設定為0個或者多個。

一旦設定replicas,那麼每個shards就會有乙個主shards,而replica shards就是對主shards的拷貝

shards和replicas數量在索引建立時生成。當索引index生成後,我們能夠動態改變replicas的數量,

但是不能改變shards的數量。

如果我們在cluster上面有兩個節點nodes,比如分片0(有兩個,每個節點各有乙個分片0),

那麼會隨機在其中乙個節點上設定乙個為主分片,另外乙個就是replica 分片了,

這樣我們將會有5個主要的shards(在主node上面)和另外5個replica shards(在另外乙個node上)

總共有10個shards. 

假如有3個nodes,那麼會從所有nodes上選出0的乙個主分片,還有1-4的每個主分片

總共還是5個主分片,其他的10個就是replica 分片了.這樣應該理解了吧.

ELK使用1 Elasticsearch使用

一 es 1 通過curl命令獲取es 資訊 a curl i 設定協議的頭資訊 xget http 192.168.30.41 9200 count b 檢視集群狀態 curl xget c cat api,可以檢視所有東西 curl xget a marvel agent b 安裝head外掛程...

Elasticsearch上手 幾個基本概念

elasticsearch的說明文件中,基本概念 basic concepts 一節中提到了一些術語,結合實踐經驗,嘗試重新理解一下。上面的文件包含了三個字段 user post date和message 我將其理解為文件的型別,如果非要對應到資料庫的概念上,那就是相當於mysql的表結構或者mon...

ElasticSearch系列04 核心概念

一 es配置檔案詳解 elasticsearch.yml es的基本配置檔案 詳見elasticsearch中文.yml logging.yml 日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置來設定就行了。二 es中的核心概念 cluster...