學習了什麼是Elasticsearch以後,針對工程而言,咱們更加關心的是Elasticsearch它能幹什麼?能在什麼地方發揮做用?跟其它相似的東西相比它不一樣的地方在哪裏?
概括起來就是Elasticsearch在什麼場景下,相比於其餘相似的技術而言,它更適合作什麼git
搜索:百度,網站的站內搜索,IT系統的檢索
數據分析:電商網站,最近7天牙膏這種商品銷量排名前十的商家有哪些;新聞網站,最近一個月訪問量排名前3的新聞板塊是哪些github
全文檢索:我想搜索商品名稱包含牙膏的商品,select * from products where product_name like "%牙膏%"
結構化檢索:我想搜索商品分類爲日化用品的商品有哪些,select * from products where category_id="日化用品"
數據分析:咱們分析每個商品分類下有多少個商品,select category_id,count(*) from products group by category_id數據庫
分佈式:ES自動能夠將海量數據分散到多臺服務器上去存儲和檢索
海量數據的處理:分佈式之後,就能夠採用大量的服務器去存儲和檢索數據,天然而然就能夠實現海量數據的處理了
近實時:檢索個數據要花費1個小時(這就不叫作近實時,叫作離線批處理,batch-processing);在秒級別對數據進行搜索和分析才叫作近實時服務器
國外:
(1)維基百科 全文檢索、高亮、搜索推薦
(2)The Guardian(國外新聞網站) 用戶行爲日誌(點擊,瀏覽,收藏,評論)+社交網絡數據(對某某新聞的相關見解),數據分析,給到每篇新聞文章的做者,讓他們知道他的文章的公衆反饋(好、壞、熱門。。。)
(3)Stack Overflow(國外程序異常討論論壇),全文檢索,搜索到相關問題和答案,若是程序報錯了,就會將報錯信息粘貼到裏面去,搜索有沒有對應的答案
(4)github,搜索上千億行的代碼
(5)電商網站,檢索商品
(6)日誌數據的分析 elk技術
(7)商品價格監控網站,用戶設定某商品的價格閾值,當低於該閾值的時候,發送通知消息給用戶
(8)BI系統,商業智能Business Intelligence。好比有個大型商場集團,BI,分析一下某某地區最近3年的用戶消費金額的趨勢以及用戶羣體的組成構成,產出相關的數張報表。網絡
國內
站內搜索(電商、招聘、門戶等等)
IT系統搜索(OA、CRM、ERP等等)
數據分析分佈式
(1)能夠做爲大型分佈式集羣(數百臺服務器)技術,處理PB級的數據,服務大公司;也能夠運行在單機上服務於小公司
(2)Elasticsearch不是什麼新技術,主要是將全文檢索、數據分析以及分佈式技術,合併在了一塊兒,才造成了獨一無二的ES:lucene(全文檢索),商用的數據分析軟件,分佈式數據庫
(3)對用戶而言,是開箱即用的,很是簡單,做爲中小型應用,直接3分鐘部署一下ES,就能夠做爲生產環境的系統來使用了,此時的場景是數據量不大,操做不是太複雜
(4)數據庫的功能面對不少領域是不夠用的(事務,還有各類聯機事務型的操做);特殊的功能,好比全文檢索,同義詞處理,相關度排名,複雜數據分析,海量數據的近實時處理,Elasticsearch做爲傳統數據庫的一個補充,提供了數據庫所不能提供的不少功能學習