面試官問我會不會Elasticsearch,我語塞了...

龍躍十二發表於2020-06-03

少點程式碼,多點頭髮

本文已經收錄至我的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 的更多資訊?

我是龍叔,一個分享網際網路技術和心路歷程的star。

相關文章