ElasticSearch 筆記-基本概念

年終了,清理一下自己的OneNote,把筆記遷移到博客上來。

官網:https://www.elastic.co/
文檔:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

簡介:

Elasticsearch是一個高度可擴展的、開源的、基於Lucene的全文搜索和分析引擎。它允許您快速、近乎實時的存儲,搜索和分析大量數據,並支持多租戶。
Elasticsearch也使用java開發並使用Lucene作爲其核心來實現所有索引和搜索功能,但是它的目的是通過簡單的RESTfulAPI來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。不過Elasticsearch不僅僅是Lucene和全文搜索,我們還可以這樣描述:

  • 分佈式的實時文件存儲,每個字段都被索引並可被搜索;
  • 分佈式的實時分析搜索引擎;
  • 可以擴展到上百臺服務器,處理PB級結構化或非結構化數據。
    而且,所有的這些功能被集成到一個服務裏面,你的應用可以通過簡單的RESTful API、各種語言的客戶端甚至命令行與之交互。

搭建

……

可視化WEB界面

由於Elastisearch的交互方式是Rest形式的,並不直觀,我們先安裝可視化界面,方便我們操作。可選擇的目前主要有elasticsearch-head和kibana。

基本概念

一切準備就緒,我們正式操作之前,先來了解一些ES的基本核心概念,通常有集羣、節點、分片、副本等概念。Elasticsearch是一個近乎實時的(NRT)搜索平臺。這意味着從索引文檔到可搜索文檔有一點延遲(通常是1秒)。

集羣(Cluster)

Cluster是一組具有相同cluster.name的節點集合,他們協同工作,共享數據並提供故障轉移和擴展功能,當然一個節點也可以組成一個集羣。
集羣由唯一名稱標識,默認情況下爲“elasticsearch”。此名稱很重要,因爲如果節點設置爲按名稱加入集羣的話,則該節點只能是集羣的一部分。確保不同的環境中使用不同的集羣名稱,否則可能會導致節點加入錯誤的集羣。集羣的健康狀態通過綠、黃、紅來標識:

  • 綠色:集羣功能齊全
  • 黃色:所有數據均可用,但尚未分配一些副本
  • 紅色:某些數據由於某種原因不可用
    需要檢查集羣運行狀況,可以運行一下命令:GET /_cluster/health

節點(Node)

節點,一個運行的ES示例就是一個節點,節點是存儲數據並參與集羣的索引和搜索功能。就像集羣一樣節點由名稱標識,默認情況下,該名稱是在啓動時隨機分配給節點的唯一標識符(UUID),如果不需要默認值,則可以自定義所需的任何節點名稱。此名稱對於管理目的非常重要,您可以在其中識別網絡中哪些服務器與Elasticsearch集羣中的哪些節點相對應。

索引(Index)

索引是具有某些類似特徵的文檔集合,索引由名稱標識(必須全部小寫),此名稱在文檔執行索引、搜索、更新和刪除操作時使用。

類型(Type)

類型,曾經是索引的邏輯類別/分區,允許您在同一索引中存儲不同類型的文檔,例如:一種類型用於用戶,另一種類型用於博客帖子。不過在個概念在6.0.0中被棄用,以後不能在索引中創建多個類型,並且將在更高版本中刪除類型整個概念。

文檔(Document)

文檔是可以建立索引的基本單元。例如,您可以爲單個客戶提供文檔、爲單個產品提供文檔。該文檔以JSON標識,Json是一種普遍存在的互聯網數據交換格式。在索引/類型中,您可根據需要存儲任意數量的文檔。請注意,儘管文檔實際上駐留在索引中,但實際上必須將文檔編入索引或者分配給索引中的類型。

分片(Shards)

索引可能存儲大量可能超過單個節點的硬件限制的數據。例如,佔用1TB磁盤空間的十億個文檔的單個索引可能不適合單個節點的磁盤,或者可能太慢而無法單獨從單個節點提供搜索請求。爲了解決這個問題,Elasticsearch提供了將索引細分爲多個稱爲分片的功能。創建索引時,只需定義所需的分片數即可。每個分片都是一個功能齊全且獨立的“索引”,可以託管在集羣中的任何節點上。

  • 它允許您水平拆分/縮放內容
  • 它允許您跨分片分步和並行化操作,從而提高性能/吞吐量
    在可能發生故障的網絡/雲環境中,分片非常有用,建議使用故障轉移機制,以防分片/節點以某種方式脫機或因任何原因消失。爲此,Elasticsearch允許您將索引分片製作成一個或多個副本。

副本(Replicasedit)

副本,是對分片的賦值。目的是爲了當分片/節點發生故障時,提供搞可用性,它允許您擴展搜索量/吞吐量,因爲可以在所有副本上並行執行搜索。總而言之,每個索引可以拆分爲多個分片。索引也可以複製爲零次(表示沒有副本)或更多次。複製之後,每個索引將具有主分片(從原始分片複製而來的)和複製分片(主分片的副本)。可以在創建索引時爲每個索引定義分片和副本數量。創建索引後,您可以動態的更改副本數。默認情況下,Elasticsearch中的每個索引都分配了5個分片和1個副本,這意味着如果集羣中至少有兩個節點,則索引將包含5個主分片和5個副本分片(1個完整副本),總計每個索引10個分片。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章