少點程式碼,多點頭髮
本文已經收錄至我的GitHub,歡迎大家踴躍star 和 issues。
https://github.com/midou-tech/articles
從今天開始準備給大家帶來全新的一系列文章,Elasticsearch系列
新系列肯定會有很多疑惑,先為大家答疑解惑,下面是今天要講的問題
為什麼寫Elasticsearch系列文章?
之前在文章中也陸陸續續的提到過,龍叔是做搜尋引擎的。搜尋引擎技術屬於商業技術,大家耳熟能詳的百度搜尋,Google搜尋,這可都是因為把握核心搜尋技術,從而誕生了商業帝國。
每個網際網路大廠都想去分一杯搜尋的羹,360搜尋、神馬、頭條、搜狗搜尋等等,由此可見搜尋技術的商業作用和機密性了。
搜尋把握使用者的入口
蘑菇街的搜尋引擎是一款使用C++開發、完全自研、沒有開源的搜尋引擎,沒有開源就是不能隨便寫出來的。
但是現在不一樣了
第一、我離職了,離開了意味著不在持有那些商業機密了,就算不講出來我也沒啥心理負擔(但還是不能講的,離職協議寫的很清楚,不能洩露公司商業機密)。
第二、去新的公司還是在搜尋領域,他們用Es Elasticsearch是一個開源搜尋,開源的東西可以隨便說,但還是不能說公司的商業資料。
自己一直在搜尋領域做,輸出搜尋相關的文章,第一個可以讓自己更好的學習和總結,第二個可以讓粉絲們瞭解到搜尋這個神祕的技術,增加大家自身的核心競爭力。
後面會說到,Elasticsearch是搜尋引擎,但不簡單隻能使用在搜尋領域,他可以作用的場景非常多。
Elasticsearch是什麼?
Elasticsearch 是一個分散式的開源搜尋和分析引擎,適用於所有型別的資料,包括文字、數字、地理空間、結構化和非結構化資料。
Elasticsearch 在 Apache Lucene 的基礎上開發而成,Elasticsearch 以其簡單的 REST 風格 API、分散式特性、速度和可擴充套件性而聞名,是 Elastic Stack 的核心元件。
Elastic Stack 是適用於資料採集、充實、儲存、分析和視覺化的一組開源工具。人們通常將 Elastic Stack 稱為 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列豐富的輕量型資料採集代理,這些代理統稱為 Beats,可用來向 Elasticsearch 傳送資料。
Elasticsearch 的實現原理主要分為以下幾個步驟,首先使用者將資料提交到Elasticsearch 資料中心,再通過分詞控制器去將對應的資料分詞,將其權重和分詞結果一併存入資料,當使用者搜尋資料時候,再根據權重將結果排名,打分,再將返回結果呈現給使用者。
是什麼差不多搞清楚了,再說說ES都哪些成熟的應用以及在哪些領域使用。
Elasticsearch在哪些領域使用?
應用程式搜尋 網站搜尋 企業搜尋 日誌處理和分析 基礎設施指標和容器監測 應用程式效能監測 地理空間資料分析和視覺化 安全分析 業務分析
Elasticsearch有哪些特點?
Elasticsearch 很快。 由於 Elasticsearch 是在 Lucene 基礎上構建而成的,所以在全文字搜尋方面表現十分出色。Elasticsearch 同時還是一個近實時的搜尋平臺,這意味著從文件索引操作到文件變為可搜尋狀態之間的延時很短,一般只有一秒。因此,Elasticsearch 非常適用於對時間有嚴苛要求的用例,例如安全分析和基礎設施監測。
Elasticsearch 具有分散式的本質特徵。 Elasticsearch 中儲存的文件分佈在不同的容器中,這些容器稱為分片,可以進行復制以提供資料冗餘副本,以防發生硬體故障。Elasticsearch 的分散式特性使得它可以擴充套件至數百臺(甚至數千臺)伺服器,並處理 PB 量級的資料。
Elasticsearch 包含一系列廣泛的功能。 除了速度、可擴充套件性和彈性等優勢以外,Elasticsearch 還有大量強大的內建功能(例如資料彙總和索引生命週期管理),可以方便使用者更加高效地儲存和搜尋資料。
Elastic Stack 簡化了資料採集、視覺化和報告過程。 通過與 Beats 和 Logstash 進行整合,使用者能夠在向 Elasticsearch 中索引資料之前輕鬆地處理資料。同時,Kibana 不僅可針對 Elasticsearch 資料提供實時視覺化,同時還提供 UI 以便使用者快速訪問應用程式效能監測 (APM)、日誌和基礎設施指標等資料。
學習Elasticsearch能提高哪些競爭力?
看到Elasticsearch在這麼多的領域在使用,特點也這麼明顯。看到這裡估計都不用在說什麼核心競爭力,你已經意識到了。
Elastic 於 2018 年 6 月 29 日正式推出 Elastic Certified Engineer 認證考試,認證通過可以獲得官方頒發的證照和徽章,title就是 Elastic認證工程師
具體認證的細節和含金量,沒有具體研究過,但是可以很明顯的感受到官方出了這樣一個認證,表明社會需要大量這樣的人才,而這方面人才的培養和考核指標還欠缺。
有沒有必要一定要考這個認證?
個人覺得,和英語四六級一樣,通過了再說沒用。
如果你是學生,可以考慮去考一個認證,因為你很難有業務場景驅使你去做這方面的成長,認證一定是有難度的,一個一個的困難會驅使你成長,最終這個認證也會成為招聘時一個非常大的亮點。
這個認證會有哪些幫助?
對於快速的構建知識體系幫助。
對於全面的熟悉官方文件幫助。
對於實戰解決線上問題幫助。(遇到了相關技術問題基本上不需要再求助於社群,80%以上的問題自己基本就能解決。)
對於增強信心、克服英文恐懼幫助。
Elasticsearch 支援哪些程式語言?
Java JavaScript (Node.js) Go .NET (C#) PHP Perl Python Ruby
哪裡可以找到有關 Elasticsearch 的更多資訊?
Elasticsearch GitHub 儲存庫:https://github.com/elastic Elasticsearch 官方文件:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html Elasticsearch中文社群:https://elasticsearch.cn
我是龍叔,一個分享網際網路技術和心路歷程的star。