1、基礎篇:零基礎如何學 Elasticsearch ?
常見問題:“ES 零基礎入門書籍看什麼比較好?”
認知前提:書籍的速度已遠落後于 ES 版本更新的速度。ES 幾乎每個月釋出一個版本,更新很快。
市面上的書籍,尤其國外翻譯書籍還大多是:1.x,2.x,5.x ,6.x 的版本,更新較慢。

有幾本7.X的書籍,我沒有買實體書,不太有發言權。不過:1.X——6.X全部實體書我都買了,也都看完了,可以說有發言權。
相比于實體書籍,我更推薦官方文檔,但鑒于“零基礎”讀者對英文的恐懼,書籍、視訊、學習路線等推薦清單如下:
1.1 零基礎書籍推薦
推薦1:《這就是搜尋引擎》
這是一本介紹搜尋引擎原理的書,有了搜尋引擎原理的認知再去了解 Elasticsearch 會有“居高臨下”俯視的感覺。
推薦理由 1:長銷書(比暢銷書高一個level)、作者是中科院軟體所博士、包含大量圖解、通俗易懂。
推薦理由 2:貌似在 medcl 大神(Elasti中文社群創始人、Elastic中國第1位員工) 書架也有這本書。
推薦 2:《Elasticsearch 權威指南》2.X 中文翻譯電子書
位址如下:
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html推薦理由 1:雖然基于 2.X,但底層原理的介紹并不過時,值得一看。
推薦理由 2:wood大叔(攜程架構師、Elastic 中文社群排名第1名)也曾經多次推薦且他看過2遍以上+。
推薦 3:《Elasticsearch 實戰》紙質書
這本書是《Elasticsearch IN ACTION》 的翻譯版本。
推薦理由 1:作者之一已入職 Elasticsearch。
推薦理由 2:翻譯作者是極客時間數學課的作者:黃申博士,翻譯還可以,至少比《 Lucene 實戰 》翻譯好 100 倍。
推薦理由 3:這本書是 Medcl 大神寫的序。
推薦4:結合 ECE 考綱、《Elasticsearch 最少必要知識》電子教程啃官方文檔。
《Elasticsearch 最少必要知識》 位址:
https://www.yuque.com/deep_elasticsearch/tzcm9n
推薦理由 1:ECE 認證考試是以考帶練,入門學習和進階的絕佳方式,沒有之一。
推薦理由 2:單獨看官方文檔不知道重點,而 ECE 考綱就是重點。
推薦理由 3:單獨看官方文檔 + ECE大綱沒有頭緒,《Elasticsearch 最少必要知識》幫梳理清楚了。
1.2 零基礎入門視訊教程推薦
推薦 1:阮一鳴老師 7.1+ 極客時間視訊
位址:
https://time.geekbang.org/course/intro/100030501推薦 2:魏彬老師慕課網的視訊(6.X 版本)
https://coding.imooc.com/class/181.html推薦 3:李猛老師視訊課程(最新版本)
https://www.gupaoedu.cn/course-es.html推薦 4:中華石杉老師的 2.X 視訊教程
https://www.roncoo.com/view/80推薦 5:死磕 Elasticsearch 最少必要知識系列直播(7.x + 版本,推進中)
http://t.cn/RmwM3N9因為每個人的“口味”不同,正所謂“衆口難調”,再好口碑的課程也有人覺得“雞肋”。
是以,上面列舉了幾乎所有 Elasticsearch 視訊教程,總有适合你的一款。
1.3 “零基礎”是相對的、不要怕!
所謂“零基礎”,Mysql 資料庫的一些正常操作基礎是有的吧?
推薦結合已有知識體系,類比學習:
MySQL ElasticSearch
Table Index
Table Type
Row Document
Column Field
Schema Mapping
Index Everything is indexed
SQL Query DSL
select * from … GET http://…
update table set … POST http://…
group by、avg、sum Aggregations
去重 distinct cardinality
資料遷移 reindex
通過類比:就可以由已有認知過度到未知認知,便于快速習得技能。
建議把基礎内容分為兩部分,
part 1:增删改查
這一部分相對好了解,或者可以借助已有知識體系類比加深了解。
進一步細分為:
索引的增删改查
文檔的增删改查
Mapping 的增删改查
template 的增删改查
......
這些知識有了,基本的操作基本都經過手了。
part 2:非增删改查
資料預處理 Ingest
自定義分詞
檢索分類
聚合分類
節點角色分類
叢集備份與快照
叢集安全
跨叢集部署
冷熱叢集架構
跨機房跨機架檢索
有了上面的分類,一個知識點一個知識點的攻克就可以了。
1.4 形成自己的學習路線圖
我之前梳理的學習路線圖如下:
重磅 | Elasticsearch7.X學習路線圖
學習路線因人而異,上面的路線圖僅供參考。
需要結合自己的實踐和認知,找到屬于自己的一條學習路線。
1.5 “零基礎”學習方法論——光看不夠,搭建環境 + 練起來更重要!
書籍和視訊一個道理,看再多不如練習一遍。
這裡強調的練:是《刻意練習》書籍中推崇的概念“練習”的練,不是盲目的練習、而是有目的、有目标的刻意練習。
你看星球考過的 46 位認證工程師,都是刻意練習 + 對官方文檔非常熟練的結果。
最簡單、最輕量化的方式:搭建好環境(單節點 Elasticsearch + kibana),用 kibana 自帶的三個示例資料就可以練習起來。
部署方式一:如果 PC 記憶體足夠,搭建個虛拟機就可以開搞了。
部署方式二:如果對 docker 很熟悉,docker 部署 ELK 也非常快。
部署方式三:一、二都不喜歡,自己買個雲伺服器(最少2核4G)就夠了。
結合自己的需求,用自己最擅長的方式。
以上,期望有助于你快速入門!
2、進階篇:實踐加深認知
基礎篇強調練起來。進階篇會進一步強調“練”的重要性。
2.1 刻意學習一遍官方文檔
程式猿DD大佬說過:要切實的落實某個架構,全面了解和掌握的方式永遠都是“官方文檔 + 學會讀源代碼”。
是的,如果說入門我們可以看部落格、看視訊,站在别人“肩上”走的更快。那麼進階的話,系統的過一遍官方文檔就很有必要了。
如果感覺上來就全英文有些吃力,可以 7.X 最新版本的英文結合 2.X 中文文檔一起來看。
如果感覺吃力,可以看一下技術部落格資源:
全網最牛逼的 Elasticsearch 天團部落格集合
2.2 實戰中刻意練習
在産品或項目架構、開發、運維的過程中,遇到問題,不要僅局限在解決問題本身,多刨根問底,問問底層原理是什麼?
舉例 1:range query 對數值類型還是 keyword 類型來講,哪種資料類型會更快?
舉例 2:index sort 真的很快嗎?适用于什麼場景?底層是如何實作的?
這時候有遇到不明白的,可以翻閱官方文檔,檢視github issue記錄,翻閱源代碼,社群内讨論等......通過不斷求證提升認知。
2.3 上學下幫的練習
社群中每天都有來自全國 N 多公司線上實戰問題,看看别人都遇到了哪些問題?用了哪些技術棧?
國内Elastic社群位址:
https://elasticsearch.cn/國外Elastic社群位址:
https://discuss.elastic.co/2.3.1 向上學
向比自己厲害的人學習。
社群社群中有大量的大牛,即便很“偏門”、“刁鑽”的問題也能有非常獨到的見解和思路,這就很值得我們去學習。
學習什麼?
學習他們拆解問題、分析問題、定位問題以及解決問題的思路。
2.3.2 向下幫
幫助需要幫助的人,大家都有知識盲區。幫助别人的同時個人也能得到飛速的提升。
正所謂:“講一遍有一遍的收貨”。
對于求助人來說,“能把問題講清楚、問題就解決了一大半”。
而對于解答者來說:“輸出倒逼輸入,幫助别人排查問題,本質就是進一步提升自己的認知”。别的不說,社群 wood 大叔的文章基本就是解決自己或者别人問題而累積的幹貨,對 Elastic 學習者來說大有裨益。