Elasticsearch 的使用,看这一篇就够了!
前兩天看到曹政大佬的文章,說他上個世紀末在廣州做 PHP 程序員的時候,接到一個私活兒。
有個客戶是開律所的,要做個法律查詢的網站。他整了個 Mysql,把內容導進去,寫個搜索查詢語句就搞定了。客戶覺得,這開發效率,沒誰了。
于是,問題來了。搜索一個關鍵詞,得等好半天,那會兒他只會 SQL 的 like 語法,更不用說負載問題了。
后來,他才知道搜索這玩意的開銷、字索引和詞索引都是怎么回事,搜索引擎是如何實現的,也漸漸知道了各種第三方的開源搜索平臺。
其實,搜索是現代互聯網應用必備的一項基礎功能,很多產品都需要內建搜索系統。
而且,隨著時代的前進,搜索不再僅僅是關鍵詞匹配,比如隨著搜索出現的相關推薦,再比如基于地理位置的就近查詢,等等需求應運而生。
能夠勝任這樣的開發,可不是什么容易的事情。幸而有些強大的第三方工具,才能讓我們不用重復造輪子,Elasticsearch?就是一款功能強大的開源分布式搜索與數據分析引擎。
?
它可以從海量數據中快速找到相關信息,在同領域內幾乎沒有競爭對手——近兩年 DBRanking 的數據庫評測中,ES 在搜索引擎領域始終位列第一。
?
當你在 GitHub 上搜索時,Elasticsearch 可以實現代碼級的搜索與高亮顯示 ;當你在網上購物時,ES 可為你推薦喜歡的商品;當你下班打車回家時,ES 可以通過定位附近的乘客和司機,幫助平臺優化調度。
?
Elasticsearch 還被廣泛運用于大數據近實時分析,包括日志分析、指標監控、信息安全等多個領域。
?
它可以探索海量結構化、非結構化數據,按需創建可視化報表,對監控數據設置報警閾值,甚至通過使用機器學習,做到自動識別異常狀況。
?
作為目前最流行的開源搜索引擎,ES 在全球的下載量已超過 3.5 億次,騰訊、滴滴、今日頭條、餓了么、360 安全、小米,vivo 等國內諸多知名公司都在使用 Elasticsearch。
如何深入理解,并高效使用 ES ??
Elasticsearch?非常容易上手,具有開箱即用的特性,你可以在極短的時間內設置好開發環境,然后快速上手使用,繼而在成百上千臺服務器上實現 PB 級的數據處理。
?
雖然上手快,但要做到深入理解并高效使用,可就沒那么簡單了,比如:
?
1. 為什么我的數據查不到,明明是有的啊!
2. 什么鬼?為什么這幾條數據出現在搜索結果的前幾位?
3. 生產環境我需要多少臺機器,索引的分片數怎么樣設置才是合理的?
4. 應該關注哪些指標,才能保證集群健康高效地運行?
5. 對于日志型應用,如何設置 Hot & Warm Architecture 節約成本,怎樣管理和優化基于時間序列的索引數據,才能提高集群的整體性能?
6. 為什么我的集群腦裂了?數據損壞后,怎樣才能恢復?
其實,想要掌握 Elasticsearch,除了要理解其分布式架構的原理外,還要了解一些信息檢索領域的知識和相關技巧。
?
分享給你一張?Elasticsearch 核心知識圖譜,只有對每一個知識點仔細梳理并深入理解,才能解決工作中的實際問題。
? ? ? ?
這張圖譜出自阮一鳴,我之前聽過他在 Elastic 中國開發者大會的分享,講得非常不錯。
?
最近,得知他跟極客時間合作,推出了一門課《Elasticsearch 核心技術與實戰》。
這個課上線僅?3?天,已經有?7000+?訂閱了,看了課程的目錄和一部分內容,很想推薦給你。
?
在課程中,他用理論與實踐相結合的方式、深入淺出地講解了 Elasticsearch,只要你堅持學習,就能掌握 ES 的基本概念和服務搭建,了解其運行機制和常用技巧,并通過上手實戰理解 ES?在實際項目中的應用。
?
近幾年 ES 非常熱門,所以去年 Elastic 公司推出了官方的 Elastic 工程師認證考試,需要考生在 3 個小時的線上考試中,動手解決 12 個實際問題,就算有多年工作經驗的老手都未必能通過。
?
所以,這個認證的含金量還是挺高的。很多巨頭都在使用 ES 搭建自己的搜索系統,你去應聘的時候,有證跟沒證有可能就會影響你的錄取,收入也有可能差一個檔次。
?
阮一鳴說,這門課覆蓋了 Elastic 認證考試的全部考點,想參加考試的朋友可以將這門課作為參考教材,這也算是「學習技能之外的 bonus」了。
關于阮一鳴
阮一鳴,eBay Pronto 平臺技術負責人。Pronto 平臺管理了 eBay 內部上百個 Elasticsearch 集群,數據規模超過了 4000 個節點。
這些集群在 ebay 的生產環境中,支撐了包括訂單搜索,商品推薦,日志管理,風險控制,IT 運維,安全監控等不同領域的服務。
?
作為一名互聯網行業的老兵,他從業近 20 年了,在大數據、云計算和性能優化方面積累了豐富的經驗。同時,他還是一名連續創業者,創辦過手機游戲公司、個性化音樂推薦與分享平臺 8box。
他是如何講解 Elasticsearch 的?
如果你對 Elasticsearch 有些了解,就會發現 ES 的產品迭代速度非常快,很多老的 API 都已經被廢棄不再使用,搜索到的參數配置也大多發生了變化。
?
市面上的書籍和教程都是基于 5.x 甚至是 2.x 版本。而在課程中,哥們兒使用?Elasticsearch 最新的 7.1 版本進行教學。
?
所有 ES 最新版本的特性,在課程里都會有全面和直觀地展現,比如:用機器學習進行異常檢測;用 Canvas 展示數據;用索引的生命周期管理工具對索引進行優化等等。
?
這個課大概分為 5 個部分:
?
1.?初識 Elasticsearch:
Elasticsearch 核心概念、工作機制與應用場景;本地開發環境搭建;倒排索引的原理與 ES 中 Analysis 的具體細節;Mapping 設置和一些基本的 Search & Aggregation API。
2.?深入了解 Elasticsearch:
理解 Elasticsearch 分布式架構的原理;相關性算分的原理;數據建模的最佳實踐;深入搜索及聚合功能以提高搜索結果的相關度。
3.?管理 Elasticsearch 集群:
集群的水平擴展、參數配置、性能優化、故障診斷。
4.?利用 ELK 做大數據分析:
結合使用場景和數據,探索 Logstash、Kibana 的各項功能。
5.?應用實戰工作坊:
設計了電影搜索和 Stack Overflow 用戶調查問卷數據分析兩個實戰項目,通過上手實踐,你可以鞏固所學的知識點,并運用到實際項目中。
需要什么基礎,能獲得什么?
?
這門課不僅適合有 ES 使用經驗的人,也適合初學者。編程知識和數據庫的相關使用經驗,會對你學習 ES 有一定幫助,但并不是必須的。
?
針對開發人員,搜索是一項被廣泛需要的功能,這個課程詳細地講解了相關的搜索概念在 Elasticsearch 中是如何對應和具體實現的。
?
如果你是一名 ES 的運維人員,管理了公司內部的 Elasticsearch 集群:上線前的如何進行容量規劃,上線后如何保證這些集群在生產環境內穩定高效的運行,如何在凌晨識別出異常信號,及時發出告警,以避免災難的發生。
這些問題,他在課程中都會給出相關的最佳實踐。
?
其實,無論是開發還是運維,架構師抑或數據分析師,甚至是產品經理,如果想更多的掌握搜索相關的知識和能力,都可以學一學 Elastic Stack。
哎,你可能要說,為什么產品經理也要學,因為以后遇到開發說“這個搜索功能做不來”的時候,你可以理直氣壯地撕逼啊。
?
在大數據時代,近實時的搜索和分析能力,會讓你唯快不破,洞見未來。——這句 copy 了阮一鳴。
?
跟著認真學,結合課程中的練習和實踐,相信你一定能學以致用,基于 Elasticsearch 構建出你自己的搜索和數據分析產品。
這部分好像寫得有點長,總結起來就一句:放心學,學得會,用得著。
↓↓↓
上線僅?3?天,
已有?7000 +?訂閱。
△掃我的海報試讀或訂閱
訂閱有什么福利?
早鳥價¥99,原價¥129。結算時,輸入優惠口令「521devops」可以再減?10?元,到手價?¥89。
? 優惠口令【 24 小時后失效 】,
僅限前?50?個名額可用。
說了半天,是時候上目錄了,
想要干貨往下看:
優惠口令「521devops」明日失效。
?點「閱讀原文」以?¥89?最低價入手。
總結
以上是生活随笔為你收集整理的Elasticsearch 的使用,看这一篇就够了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颜宁的学生都已经副院长了!还发表了学校首
- 下一篇: 489个学位点被撤销,2018撤销和增列