【死磕ES】三、基本概念

Elastic Stack生態圈

  • Logstash:數據處理管道,負責數據採集和轉換,可以實時獲取IP,排斥敏感字段,拓展插件多,安全等特性
  • Beat:輕量數據採集器
  • Kibana:數據可視化工具
  • Elasticsearch:數據存儲
  • X-Pack:商業化套件,負責安全

概念和數據庫類比

運維維度,節點、分片

主要圍繞兩個概念:高可用拓展性

高可用:簡稱 HA,是系統一種特徵或者指標,體現如下兩點:

  • 服務可用性:允許部分節點停止服務,整體服務沒有影響
  • 數據可用性:允許部分節點丟失,最終不會丟失數據

拓展性:將原來節點和增量數據重新從 10 個節點分佈到 100 個節點,應對數據的猛增;

 

節點:是一個ES實例,本質上就是一個java進程,一個機器上可以運行多個實例,但是生產環境建議一臺機器上只運行一個ES實例;

節點類型

  • Master-eligible Node 和 Master Node:Master Node 負責同步集羣狀態信息
  • Data Node 和 Coordinating Node:數據節點,用於保存數據
  • Hot & Warm Node:不同硬件配置的 Data Node,用來實現冷熱數據節點架構,降低運維部署的成本
  • Machine Learning Node:負責機器學習的節點
  • Tribe Node:負責連接不同的集羣。支持跨集羣搜索 Cross Cluster Search
  • master node:通過 node.master 配置,默認 true
  • data node:通過 node.data 配置,默認 true
  • ingest node:通過 node.ingest 配置,默認 true
  • coordinating node:默認每個節點都是 coordinating 節點,設置其他類型全部爲 false。
  • machine learning:通過 node.ml 配置,默認 true,需要通過 x-pack 開啓。

分片

主分片:用來解決數據水平擴展的問題

副本分片:用來備份數據,提高數據的高可用性。副本分片是主分片的拷貝

節點、索引、分片總結

  • 一個節點,對應一個實例
  • 一個節點,可以多個索引
  • 一個索引,可以多個分片
  • 一個分片,對應底層一個 lucene 分片

倒排索引

1、舉例

1)正排索引

2)倒排索引

 2、倒排索引核心組成

  • 詞條(Term):索引裏面最小的存儲和查詢單元,對於英文來說是一個單詞,對於中文來說一般指分詞後的一個詞。

  • 詞典(Term Dictionary):或字典,是詞條 Term 的集合。搜索引擎的通常索引單位是單詞,單詞詞典是由文檔集合中出現過的所有單詞構成的字符串集合,單詞詞典內每條索引項記載單詞本身的一些信息以及指向“倒排列表”的指針。

  • 倒排表(Post list):一個文檔通常由多個詞組成,倒排表記錄的是某個詞在哪些文檔裏出現過以及出現的位置。

    每條記錄稱爲一個倒排項(Posting)。倒排表記錄的不單是文檔編號,還存儲了詞頻等信息。

  • 倒排文件(Inverted File):所有單詞的倒排列表往往順序地存儲在磁盤的某個文件裏,這個文件被稱之爲倒排文件,倒排文件是存儲倒排索引的物理文件。

詞典和倒排表是 Lucene 中很重要的兩種數據結構,是實現快速檢索的重要基石。詞典和倒排文件是分兩部分存儲的,詞典在內存中而倒排文件存儲在磁盤上。

舉例:

  • Java is the best programming language.

  • PHP is the best programming language.

  • Javascript is the best programming language.

 

 

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