Elasticsearch(ES)通俗簡介

Elasticsearch到底是什麼玩意

Elasticsearch(ES)是一款基於Lucene的分佈式、可擴展、高可用、實時的搜索與數據分析引擎。Lucene是使用Java實現的一套全文檢索類庫,ES基於Lucene做了分佈式相關的工作。

Elasticsearch有哪些應用

  1. 全文檢索
  2. 結構化查詢
  3. 近實時數據
  4. 海量數據進行近實時的處理
  5. 分析統計

Elasticsearch相關概念

  1. 集羣(cluster):一個集羣就是由一個或多個節點組織在一起,它們共同持有你整個的數據,並一起提供索引和搜索功能。
  2. 節點(node):一個節點就是集羣中的一個服務器,作爲集羣的一部分,參與集羣的索引和搜索功能。
  3. 索引(index): 一個索引就是一個具有相似特徵的文檔集合,相當於一個數據集。
  4. 類型(type):在一個索引中,你可以定義一種或多種類型,相當於對一個索引中數據的邏輯劃分(ES官方文檔明確說明不推薦使用type,即建議一個索引只有一個type。ES7.0已經廢棄了type)。
  5. 文檔(document): 一個文檔是一個可被索引的基礎信息單元,就是索引裏面的一條數據,使用JSON格式來表示。
  6. 域(field): 文檔中的一個數據字段。一個文檔由多個域組成。
  7. 分片(shards):分片是索引的一部分,一個索引由多個分片組成。每個分片可以分佈在不同的節點上,ES會根據文檔id(也可以指定其他字段)做hash,使用得到的hash值將文檔路由到指定分片上。分片是ES做Data Rebalance的最小單元。
  8. 副本(replicas):創建索引時可以爲索引指定0個或者多個副本。副本是分片級別的,即索引的分片由1個主分片(primary shard)和0個或者多個副本分片(replica shard)組成。primary shard可以接受讀取和寫入請求,replica shard只能接受讀取請求。所以副本只能提高數據的可用性和併發讀取能力。當primary shard所在服務器的節點掛掉以後,ES會通過leader選舉機制將replica shard爲primary shard。

Elasticsearch與傳統數據庫對應關係

在這裏插入圖片描述

Elasticsearch生態

  1. Kibana:ES的數據查詢、分析和監控的可視化平臺。ES6.3以後,Kibana開源免費。
  2. Logstash:開源的服務器端數據處理管道,能夠同時從多個來源採集數據,轉換數據,然後將數據發送到您最喜歡的 “存儲庫” 中。
  3. Security:ES的權限管理工具。從 6.8 和 7.1 版本開始,核心安全功能(例如 TLS、文件和原生 Realm 身份驗證,以及基於角色的訪問控制)免費提供。
  4. Curator:ES的索引和快照管理工具。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章