少點代碼,多點頭發
本文已經收錄至我的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。
