Elastic Search飛起來,飛起來!

幫飛總把文章中間和底部的廣告(如果有顯示的話)各點一下,謝謝大家。

公衆號上有人讓我聊聊Elastic Search。其實前幾天上市前也有人問了,我的留言是這樣的:

之後發生的事情,ElasticSearch一上市,股價就翻倍了,IPO35一股的股票開盤就漲到了70,之後一直維持在70以上。這種開盤直接翻倍的IPO,在美股整體大跌的這一天裏,也是非常罕見的現象。

那麼問題來了,爲什麼Elastic Search一上市就那麼牛逼?問題又來了,爲什麼飛總在Elastic Search一上市那天沒有頭版頭條的大書特書這個新聞?

第一個問題的答案,我今天試圖寫一篇文章回答一下。第二個問題的答案,主要原因是飛總其實對全文本搜索和Lucene不太懂。所以飛總就慫了。怕寫的不對被大家亂棍打死。今天之所以戰戰兢兢的跳出來寫,是因爲後臺留言的人太多了。飛總怕不寫點東西也會被亂棍打死。所以大家將就着看,飛總將就着寫。

Elastic Search自2010年問世以來,就迅速的成爲了非結構化數據搜索的事實上的標準軟件。如果一定要說一個理由爲什麼我們見到IPO股價翻倍的話,就是這個東西是真的解決實際問題。在Apache的開源項目裏,一直以來都是良莠不齊的。有好用的,有湊合着能用的,還有不好用的。

說到ES, 就不得不說Lucene。Lucene是一個Apache歷史悠久的文本搜索引擎,現在一般大家都指代Lucene core。這個引擎提供了一系列的API,給其他項目去使用,和架構不同的搜索引擎服務。Lucene的強大毋庸置疑。但是我們也能想象一下,如果要用Lucene的唯一途徑就是通過API訪問的話,這無疑也就太傻逼了一些。

Lucene團隊有另外一個項目,也是屬於開源歷史非常悠久的,叫做Solr。在很多時候,Apache Lucene發佈新版本的時候都是一個新版本的Lucene伴隨着一個新版本的Solr。這個Solr等價於Lucene團隊使用自己的Lucene API寫的一個搜索引擎應用。

很長一段時間裏,Lucene搭配Solr就是這個開源項目的標配。Solr本身並不是一個低質量的開源項目。能夠開發出Lucene Core的團隊,顯然不會去寫個傻逼的應用程序去忽悠大家。實際上很多公司,包括亞馬遜都用了Apache Solr。Solr本身也是一個高質量的開源項目。

2010年的時候,事情發生了一些變化。有人要對Lucene團隊的東西搞點事情。這一年ElasticSearch開源了。這標誌着鳩佔鵲巢的開始。ElasticSearch同樣拿着Lucene core,自己搞出了一個搜索引擎來。這個搜索引擎從此開始和Lucene團隊的Solr展開了PK,並且幾年時間後就後來居上,把Solr給幹翻了。

我之前說過,Solr本身其實挺優秀的一個搜索引擎產品。ElasticSearch到底是怎麼把Solr幹翻的呢?飛總胡說八道開始了。

Elastic Search相對於Solr來說第一個特點是容易用容易安裝。基本上來說不需要太多的配置,裝上就可以用。這一點對很多非geek的用戶都很重要,畢竟小白還是很多的。

Elastic Search第二個和Solr本質的不同是它意識到了人類搜索的時候除了做全文本搜索以外,很多時候需要做一些查詢分析,比如聚合查詢啊。它就乾脆把這些東西也給做了。而Solr這方便就比較傻逼了一點。

Elastic Search的第三個和Solr的不同是,它的系統一開始就是爲了分佈式系統而設計的。它內置了Zen模塊,可以處理分佈式系統的問題。當然這個模塊其實也是Elastic Search的bug重災區。著名的腦裂問題再Elastic Search裏很常見。

Solr一開始顯然沒考慮到這個問題,到後來Solr團隊的解決方案是用ZooKeeper去搭一個解決方案。ZooKeeper當然是個很成熟的Apache開源項目。但是用另外一個開源項目去解決自己的問題,無疑還是顯得更加厚重了。

至於其他的很多優點,比如說Elastic Search的系統架構很優美,是標準的框架和組件模式,允許不同的人輕易的替換各種組件。比如說Elastic Search裏索引建立速度很快,從數據導入到檢索1秒就夠了等等,都是Elastic Search牛逼的地方。

所以很多人這樣說,如果你要新上一艘船,又可以忍受腦裂問題偶爾抽風的話,那就上Elastic Search吧。儘管它有這樣那樣的問題,它還是一艘很好使的船。如果你在Solr上待很久, 那就繼續待着吧。Solr其實也挺好的,就是有點老古董,很厚重。

實際的情況是大家都更喜歡Elastic Search。很多大客戶都切換過來了,其中就有全球最大的同性戀交友網站GitHub。其實Solr還是有很多忠實的客戶的,比如說Amazon的AWS推出的CloudSearch就是拿Solr改的。但是架不住大家都愛Elastic Search,AWS在一段堅持一段猶豫之後,也終於又推出了Elastic Search服務。所以我覺得Elastic Search這個殼,順利的把Lucene團隊的core給發揮的淋漓盡致,並幹翻了Lucene團隊自己的殼了。

值得一提的是Elastic Search的框架設計非常的優雅,是經典的框架插件模式。這說明Elastic Search一開始就知道自己將來要怎麼贏利。在一個框架插件的生態圈裏,我們是應該開源框架,賣收費的插件賺錢呢?還是開源插件,賣收費的框架賺錢呢?答案是顯而易見的。

Elastic Search開源了整個框架,但是插件並非都是開源的。你既可以選擇自己投入人員去寫插件,也可以花錢買我寫好的插件嘛。所以Elastic Search這個軟件雖然很好,但是對那些權限管理啊之類的企業級用戶很有必要的功能,對不起了,開源的框架裏沒有,插件有。呵呵。

寫這個軟件的人,不但軟件寫的好用,而且想清楚了怎麼開源壯大社區,怎麼通過插件賺錢,無疑是個天才的天才。Elastic Search這家公司如果都不能發財的話,那大數據這一波熱潮,真的只有泡沫,沒有真金白銀了。所以我看好,非常非常的看好這家公司。

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