1. 程式人生 > >Elasticsearch的功能,Elasticsearch的適用場景,Elasticsearch的特點(來自學習資料)

Elasticsearch的功能,Elasticsearch的適用場景,Elasticsearch的特點(來自學習資料)

1.Elasticsearch的功能

(1)分散式的搜尋引擎和資料分析引擎

        搜尋:百度,網站的站內搜尋,IT系統的檢索

        資料分析:電商網站,最近7天牙膏這種商品銷量排名前10的商家有哪些;新聞網站,最近1個月訪問量排名前3的新聞版塊是哪些

        特點總結:分散式,搜尋,資料分析

(2):全文檢索,結構化檢索,資料分析

        全文檢索:我想搜尋商品名稱包含牙膏的商品,類似:select *  from products where product_name like "%牙膏%"

        結構化檢索:我要搜尋商品分類為日化使用者的商品有哪些,類似:select * from products where category_id = '日化用品'

        部分匹配、自動完成、搜尋糾錯、搜尋推薦

        資料分析:我們分析每一個商品分類下有多少商品,類似:select category_id,count(*) from products group by category_id

  (3)對海量資料進行近實時的處理

        分散式:ES自動可以將海量資料分散到多臺伺服器上去儲存和檢索

        海量資料的處理:分散式以後,就可以採用大量的伺服器去儲存和檢索資料,自然而然就可以實現海量資料的處理了。

        近實時:檢索個數據要花費1小時(這就不要近實時了,離線批處理,batch-processing);在秒級別對資料進行搜尋和分析。

        跟分散式/海量資料相反的:Lucene,單機應用,只能在單臺伺服器上使用,最多隻能處理單臺伺服器可以處理的資料量。

2.Elasticsearch的適用場景

        國外:

       (1)維基百科,類似百度百科,牙膏,牙膏的維基百科,全文檢索,高亮,搜尋推薦
       (2)The Guardian(國外新聞網站),類似搜狐新聞,使用者行為日誌(點選,瀏覽,收藏,評論)+社交網路資料(對某某新聞的相關看法),資料分析,給到每篇新聞文章的作者,讓他知道他的文章的公眾反饋(好,壞,熱門,垃圾,鄙視,崇拜)
       (3)Stack Overflow(國外的程式異常討論論壇),IT問題,程式的報錯,提交上去,有人會跟你討論和回答,全文檢索,搜尋相關問題和答案,程式報錯了,就會將報錯資訊貼上到裡面去,搜尋有沒有對應的答案
       (4)GitHub(開原始碼管理),搜尋上千億行程式碼
       (5)電商網站,檢索商品
       (6)日誌資料分析,logstash採集日誌,ES進行復雜的資料分析(ELK技術,elasticsearch+logstash+kibana)

       (7)商品價格監控網站,使用者設定某商品的價格閾值,當低於該閾值的時候,傳送通知訊息給使用者,比如說訂閱牙膏的監控,如果高露潔牙膏的家庭套裝低於50塊錢,就通知我,我就去買。

       (8)BI系統,商業智慧,Business Intelligence。比如說有個大型商場集團,BI,分析一下某某區域最近3年的使用者消費金額的趨勢以及使用者群體的組成構成,產出相關的數張報表,**區,最近3年,每年消費金額呈現100%的增長,而且使用者群體85%是高階白領,開一個新商場。ES執行資料分析和挖掘,Kibana進行資料視覺化。

        國內:

        站內搜尋(電商,招聘,門戶,等等),IT系統搜尋(OA、CRM、ERP等等),資料分析(ES熱門的一個使用場景)

3.Elasticsearch的特點:

     (1)可以作為一個大型分散式叢集(數百臺伺服器)技術,處理PB級資料,服務大公司;也可以執行在單機上,服務小公司
     (2)Elasticsearch不是什麼新技術,主要是將全文檢索、資料分析以及分散式技術,合併在了一起,才形成了獨一無二的ES;lucene(全文檢索),商用的資料分析軟體(也是有的),分散式資料庫(mycat)
     (3)對使用者而言,是開箱即用的,非常簡單,作為中小型的應用,直接3分鐘部署一下ES,就可以作為生產環境的系統來使用了,資料量不大,操作不是太複雜
     (4)資料庫的功能面對很多領域是不夠用的(事務,還有各種聯機事務型的操作);特殊的功能,比如全文檢索,同義詞處理,相關度排名,複雜資料分析,海量資料的近實時處理;Elasticsearch作為傳統資料庫的一個補充,提供了資料庫所不不能提供的很多功能