終於有人把Elasticsearch原理講透了!

終於有人把Elasticsearch原理講透了!

本文來源 | 互聯網偵察

作者 | channingbreeze,北航碩士畢業,阿里五年技術老鳥,全棧工程師,前慕課網講師,phaser小站創始人。

小史是一個非科班的程序員,雖然學的是電子專業,但是通過自己的努力成功通過了面試,現在要開始迎接新生活了。

隨著央視詩詞大會的熱播,小史開始對詩詞感興趣,最喜歡的就是飛花令的環節。

終於有人把Elasticsearch原理講透了!

但是由於小史很久沒有背過詩詞了,飛一個字很難說出一句,很多之前很熟悉的詩句也想不起來。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


倒排索引


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!



呂老師:但是我讓你說出帶“前”字的詩句,由於沒有索引,你只能遍歷腦海中所有詩詞,當你的腦海中詩詞量大的時候,就很難在短時間內得到結果了。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


索引量爆炸


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


搜索引擎原理


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


Elasticsearch 簡介


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!



呂老師:但是 Lucene 還是一個庫,必須要懂一點搜索引擎原理的人才能用的好,所以後來又有人基於 Lucene 進行封裝,寫出了 Elasticsearch。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


Elasticsearch 基本概念


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!

呂老師:類型是用來定義數據結構的,你可以認為是 MySQL 中的一張表。文檔就是最終的數據了,你可以認為一個文檔就是一條記錄。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!

呂老師:比如一首詩,有詩題、作者、朝代、字數、詩內容等字段,那麼首先,我們可以建立一個名叫 Poems 的索引,然後創建一個名叫 Poem 的類型,類型是通過 Mapping 來定義每個字段的類型。

比如詩題、作者、朝代都是 Keyword 類型,詩內容是 Text 類型,而字數是 Integer 類型,最後就是把數據組織成 Json 格式存放進去了。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


呂老師:這個問題問得好,這涉及到分詞的問題,Keyword 類型是不會分詞的,直接根據字符串內容建立反向索引,Text 類型在存入 Elasticsearch 的時候,會先分詞,然後根據分詞後的內容建立反向索引。

終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


呂老師:之前我們說過,Elasticsearch 把操作都封裝成了 HTTP 的 API,我們只要給 Elasticsearch 發送 HTTP 請求就行。

比如使用 curl -XPUT 'http://ip:port/poems',就能建立一個名為 Poems 的索引,其他操作也是類似的。

終於有人把Elasticsearch原理講透了!

Elasticsearch 分佈式原理


終於有人把Elasticsearch原理講透了!


呂老師:沒錯,Elasticsearch 也是會對數據進行切分,同時每一個分片會保存多個副本,其原因和 HDFS 是一樣的,都是為了保證分佈式環境下的高可用。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


呂老師:沒錯,在 Elasticsearch 中,節點是對等的,節點間會通過自己的一些規則選取集群的 Master,Master 會負責集群狀態信息的改變,並同步給其他節點。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!



呂老師:注意,只有建立索引和類型需要經過 Master,數據的寫入有一個簡單的 Routing 規則,可以 Route 到集群中的任意節點,所以數據寫入壓力是分散在整個集群的。

終於有人把Elasticsearch原理講透了!

ELK 系統


終於有人把Elasticsearch原理講透了!



呂老師:其實很多公司都用 Elasticsearch 搭建 ELK 系統,也就是日誌分析系統。其中 E 就是 Elasticsearch,L 是 Logstash,是一個日誌收集系統,K 是 Kibana,是一個數據可視化平臺。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!



呂老師:分析日誌的用處可大了,你想,假如一個分佈式系統有 1000 臺機器,系統出現故障時,我要看下日誌,還得一臺一臺登錄上去查看,是不是非常麻煩?


終於有人把Elasticsearch原理講透了!



呂老師:但是如果日誌接入了 ELK 系統就不一樣。比如系統運行過程中,突然出現了異常,在日誌中就能及時反饋,日誌進入 ELK 系統中,我們直接在 Kibana 就能看到日誌情況。如果再接入一些實時計算模塊,還能做實時報警功能。


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


終於有人把Elasticsearch原理講透了!


搜索引擎原理

小史學完了 Elasticsearch,在筆記本上寫下了如下記錄:

  • 反向索引又叫倒排索引,是根據文章內容中的關鍵字建立索引。
  • 搜索引擎原理就是建立反向索引。
  • Elasticsearch 在 Lucene 的基礎上進行封裝,實現了分佈式搜索引擎。
  • Elasticsearch 中的索引、類型和文檔的概念比較重要,類似於 MySQL 中的數據庫、表和行。
  • Elasticsearch 也是 Master-slave 架構,也實現了數據的分片和備份。
  • Elasticsearch 一個典型應用就是 ELK 日誌分析系統。

寫完,又高高興興背詩去了。

開發視圖用於描述系統的模塊劃分和組成,以及細化到內部包的組成設計,服務於開發人員,反映系統開發實施過程。

觀書有感(朱熹)

半畝方塘一鑑開,天光雲影共徘徊。

問渠那得清如許?為有源頭活水來。


分享到:


相關文章: