1. 程式人生 > >Elasticsearch入門介紹

Elasticsearch入門介紹

ES是一個高擴充套件的、開源的、全文檢索的搜尋引擎,它提供了近實時的索引、搜尋、分析功能。

ES文件翻譯與總結參考:ES知識彙總

應用場景

1 它提供了強大的搜尋功能,可以實現類似百度、谷歌等搜尋。

2 可以搜尋日誌或者交易資料,用來分析商業趨勢、蒐集日誌、分析系統瓶頸或者執行發展等等

3 可以提供預警功能(持續的查詢分析某個資料,如果超過一定的值,就進行警告)

4 分析商業資訊,在百萬級的大資料中輕鬆的定位關鍵資訊

核心知識簡介

要了解ES首先就要弄清楚下面的幾個概念,這樣也不會對ES產生一些誤解:

1 近實時

ES並不是一個標準的資料庫,它不像MongoDB,它側重於對儲存的資料進行搜尋。因此要注意到它 不是

 實時讀寫 的,這也就意味著,剛剛儲存的資料,並不能馬上查詢到。

當然這裡還要區分查詢的方式,ES也有資料的查詢以及搜尋,這裡的近實時強調的是搜尋....

2 叢集

在ES中,對使用者來說叢集是很透明的。你只需要指定一個叢集的名字(預設是elasticsearch),啟動的時候,凡是叢集是這個名字的,都會預設加入到一個叢集中。

你不需要做任何操作,選舉或者管理都是自動完成的。

對使用者來說,僅僅是一個名字而已!

3 節點

跟叢集的概念差不多,ES啟動時會設定這個節點的名字,一個節點也就是一個ES得伺服器。

預設會自動生成一個名字,這個名字在後續的叢集管理中還是很有作用的,因此如果想要手動的管理或者檢視一些叢集的資訊,最好是自定義一下節點的名字。

4 索引

索引是一類文件的集合,所有的操作比如索引(索引資料)、搜尋、分析都是基於索引完成的。

在一個叢集中,可以定義任意數量的索引。

5 型別

型別可以理解成一個索引的邏輯分割槽,用於標識不同的文件欄位資訊的集合。但是由於ES還是以索引為粗粒度的單位,因此一個索引下的所有的型別,都存放在一個索引下。這也就導致不同型別相同欄位名字的欄位會存在型別定義衝突的問題。

在2.0之前的版本,是可以插入但是不能搜尋;在2.0之後的版本直接做了插入檢查,禁止欄位型別衝突。

6 文件

文件是儲存資料資訊的基本單元,使用json來表示。

7 分片與備份

在ES中,索引會備份成分片,每個分片是獨立的lucene索引,可以完成搜尋分析儲存等工作。

分片的好處:

1 如果一個索引資料量很大,會造成硬體硬碟和搜尋速度的瓶頸。如果分成多個分片,分片可以分攤壓力。

2 分片允許使用者進行水平的擴充套件和拆分

3 分片允許分散式的操作,可以提高搜尋以及其他操作的效率

拷貝一份分片就完成了分片的備份,那麼備份有什麼好處呢?

1 當一個分片失敗或者下線時,備份的分片可以代替工作,提高了高可用性。

2 備份的分片也可以執行搜尋操作,分攤了搜尋的壓力。

ES預設在建立索引時會建立5個分片,這個數量可以修改。

不過需要注意:

1 分片的數量只能在建立索引的時候指定,不能在後期修改

2 備份的數量可以動態的定義

參考

【1】ES官方文件