你的 Elasticsearch 難題,官方文檔早就有了答案......

女藝人都開始學習 Elasticsearch了

看到朋友圈大佬都在轉載:

足見 Elasticsearch 的熱度。

近幾年,活躍於 Elasticsearch 中文社區、各種QQ學習羣、微信學習羣,經常會看到各種各樣的問題, 很多問題,官方文檔已經寫得非常清楚了,甚至官方文檔早有了答案。

官方文檔強調內容舉例:

  • 避免對 text 類型使用 term query。

Avoid using the term query for text fields

  • search.allow_expensive_queries 設置爲 false後,wildcard 將不被執行。

Wildcard queries will not be executed if search.allow_expensive_queries is set to false.

  • text 類型存儲數據結構是倒排索引,而 geo 和 數值類型存儲數據結構是 BKD trees。

For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees.

如上的選型針對的是微信羣的提問:誰知道精確值在 ES 中怎麼存儲的不,比如 "price": 100,也是存儲在倒排索引中的麼?

死磕 Elasticsearch 星球

但,由於Elasticsearch 更新快、官方文檔都是英文、官方文檔覆蓋面又全又廣,很多初學者知道其有用,但,很容易對其望而卻步。

退而求其次,選擇了一些老版本的書或者參考資料,浪費了時間、走了很多彎路,而後又通過google、stackoverflow、disscuss.elastic.co、github 跳到了官方文檔,這時候才恍然大悟:“文檔中都寫着了,我爲什麼之前不知道?!"

本文結合自己 Elastic 認證經驗,梳理一下 Elasticsearch 官方文檔的學習路徑。

期望對大家能有所幫助。

第一手資料的重要性

學習 Elasticsearch 知識的過程中,官方英文文檔 + 源碼 + 源碼作者寫的圖書 + 官方博客才能稱爲第一手資料。

第二手資料:github issue, 國外社區論壇,stackoverflow, 國內博客論壇,優秀的國內外圖書。

書的封皮作者部分,著、編著、翻譯的區別(說法不嚴謹)

1) - 完全自己寫的,質量相對高。幾乎很少參考別人的。如:侯捷《深入淺出MFC》、《程序員的自我修養》、《Elasticsearch源碼解析與實戰》……

2)翻譯 - 翻譯一般會滯後1年+,比如:《Elasticsearch in action》滯後了3年。15年英文版,18年出中文版。

第三手資料:拼湊的國內圖書。

封皮一般會有“編著”字樣。

3)編著 - 編著也不乏優秀作品。但,國內很多博導、碩導、老師等爲了評職稱寫了很多爛書,千萬別買!

如何甄別一本好書 ?看銷量、看評分、看再版情況基本就能區分個八九不離十。

相比之下:

  • 一手資料優於二手資料,二手資料優於三手資料。

  • 一手資料非常重要,獲得知識最直接,沒有中間環節,減少認知盲區和障礙!

Elasticsearch 官方文檔就是第一手資料

字越少,信息量越大!

關於 Elasticsearch  官方文檔,ES 業界大佬怎麼說?

最新 + 豐富 + 權威 + 靠譜

VIVO 搜索總監楊振濤大佬指出:

“一是以官方提供的入門和參考文檔爲主,因爲業內現在 ES 相關資料相對來說比較豐富,但是想要跟上官方最新版本的節奏以及考慮權威性,還是官方的參考文檔和有關的手冊會比較靠譜!”

快速瞭解全貌,有幫助

攜程 WOOD 大叔強調:

“對於新手入門最淺顯易懂的,還是官方那本 Elasticsearc 權威指南,中文版是2.X,但對新手快速瞭解 Elasticsearch的全貌,有非常大的幫助”。

Elasticsearch 官方文檔地址

Elasticsearch 最新版本官方文檔入口

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

Elasticsearch 權威指南英文版(2.X)

https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

Elasticsearch 權威指南中文版(2.X)

https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

Elastic Stack 全部文檔入口

https://www.elastic.co/guide/index.html

有什麼區別 ?

  • 《權威指南》:強調 Elasticsearch 原理

  • 《官方文檔》:有版本之分,強調全面和明細API,是你開發運維的幫助文檔。

如何 高效的學習 Elasticsearch 官方文檔

第一:高屋建瓴,從大處建立起全局認知

看有哪些模塊?

無非:部署、索引、檢索、聚合、分析、文檔、集羣、安全等核心模塊。

提前瞭解文檔全貌及章節脈絡,避免:只見樹木不見森林。

舉例:總攬下 query mapping aggs 等都在哪裏,出問題好去找。

避免:上來就從頭看到尾。和學生時代,背四六級單詞一樣,真的有的同學考了幾次了,單詞還停留在a開頭的 abandon 部分。

第二:刻意練習查閱 Elasticsearch 官方文檔

遇到問題刻意去找文檔,而不是google或其他搜索引擎直接不考慮。

雖然很痛苦,但有效果。

凡是花時間梳理的東西,自己記得牢固。別人給現成答案短期有效果,長期往往記不住。

實戰舉例:

比如:遇到問題 動態模板 就去谷歌搜索“elasticsearch 動態模板”。

但,這並不是學習、提升認知的最佳途徑。

應該多思考幾個問題,並帶着問題翻看文檔:

  • 0,英文名是不是 dynamic template ?

  • 1.動態模板 在文檔的那個部分?

  • 2.動態模板和 mapping 或其他章節如何關聯的?

  • 3,到底什麼是動態模板?

  • 4,模板、動態模板作用是什麼?

  • 5,是不是還有靜態模板?

  • 6,動態模板和動態映射有什麼關係?

  • 7,實際業務中怎麼用?適用什麼場景?

  • 8,能不能 kibana dev-tool 敲個 demo 加深理解?

第三:實在找不到,纔去用 Elasticsearch 文檔的搜索功能。

實踐你會發現,Elasticsearch 官方文檔搜索不見得能搜到您想要的結果。逐步養成查文檔的習慣、逐步戒掉上來就google、上來就搜索的“不良”習慣。

第四:通過“點、線、面、體”,逐步打造屬於自己的 Elasticsearch 體系。

  • 遇到不會的知識點,建議相關知識點一起過一遍,增強認知。

  • 點形成線,線形成面,面形成知識體系。

舉例1:字段類型,多個字段類型構成 mapping,mapping 和 setting 構成模板,模板就是數據建模的考慮因素。

反過來,由數據建模往下考慮,兩者結合效果更佳。

舉例2:遇到問題,能將問題拆分到所屬模塊,在對應模塊裏查找。

可能會出現跨模塊,不要怕,一併學習之。

舉例3:shard allocatin 在索引模塊和集羣模塊都有,兩個都要看,一起加深認知!

剛開始很難、堅持下來你會發現很靠譜。

我們日常遇到的基礎問題,80%以上都能從文檔中找到答案。

Elastic 認證考試的內容,拆解梳理後,90%以上都能直接或者鏈接找到答案。

如果,沒有找到,說明不熟。

而Elastic 認證考試不過的唯一原因:不熟!!!如果不熟,肯定通過不了考試!

關於 Elasticsearch 文檔學習,常見問題

Q1:看英文有點喫力?

這不還有翻譯嘛?

如果實在不行,可以先讀翻譯版本的中文文檔,回過頭來再看英文文檔。

Q2:先看文檔再實踐,還是先實踐再翻文檔?

上了直接看文檔,很容易找不到北,尤其遇到看不懂的,會倍增挫敗感。

所以,建議:

  • 結合實踐,遇到問題反查文檔提升的快。

  • 如前所述,通過一個知識點,串聯其他知識點,逐步形成“點、線、面、體”的知識體系。

當然,如果你要備戰認證考試,兩種要結合。

Q3:要多熟悉呢?

多熟悉都不爲過。

騰訊大佬指出的“倒背如流”有點誇張,但是越熟悉,解決問題越快!

熟悉了,可以再去研究源碼、研究底層 Lucene 原理、算法數據結構原理。

小結

對於 Elasticsearch 的學習,官方文檔只是繞不開的一個基礎環節。

官方文檔不能包治百病,但絕對能解決 80% 以上的問題。

大家有更好的 Elasticsearch 官方文檔學習方法,歡迎留言交流。

對於 Elastic Stack,如果愛,請熱愛



作者:Elastic 認證工程師 / 阿里雲MVP / CSDN博客專家

更多推薦:

死磕Elasticsearch ——全網首個 ElasticStack 專欄

加入中國通過Elastic認證人數最多的圈子!

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