上一篇主要簡單介紹了下 Elasticsearch(簡稱: ES) 的官方概念,本篇主要介紹 Elasticsearch 的主要功能特色以及使用場景,文章內容是總結多篇文章及視頻資料整理出來。mysql
搜索引擎: 好比咱們經常使用的百度,以及其餘網站的站內搜索,文獻檢索。sql
數據分析: 各大電商網站,好比某寶,某東,他們會分析最近幾天某種商品銷量排名,還有一些新聞網站,最近 1 個月訪問量排名前 3 的新聞版塊是哪些。數據庫
咱們能夠拿 mysql 數據庫舉例來講明這些概念服務器
全文檢索:我想搜索商品名稱包含牙膏的商品,elasticsearch
select * from products where product_name like "%牙膏%"
結構化檢索:我想搜索商品分類爲日化用品的商品都有哪些。分佈式
select * from products where category_id='日化用品'
部分匹配、自動完成、搜索糾錯、搜索推薦網站
數據分析:咱們分析每個商品分類下有多少個商品搜索引擎
select category_id,count(*) from products group by category_id
分佈式日誌
Elasticsearch 會自動將海量數據分散到多臺服務器上去存儲和檢索海量數據的處理code
近實時
在對數據進行搜索和分析時花費的時間爲秒級別
而 lucene 只能在單臺服務器上使用,最多隻能處理單臺服務器能夠處理的數據量。
GitHub
搜索上千億行代碼
電商網站
檢索商品
日誌數據分析
ELK (elasticsearch+logstash+kibana)日誌採集,logstash採集日誌,ES進行復雜的數據分析
其餘 站內搜索(電商,招聘網站,門戶網站)
(1)能夠做爲一個大型分佈式集羣(數百臺服務器)技術,處理PB級數據,服務大公司;也能夠運行在單機上,服務小公司
(2)Elasticsearch不是什麼新技術,主要是將全文檢索、數據分析以及分佈式技術,合併在了一塊兒,才造成了獨一無二的ES;lucene(全文檢索),商用的數據分析軟件(也是有的),分佈式數據庫(mycat)
(3)對用戶而言,是開箱即用的,很是簡單,做爲中小型的應用,直接3分鐘部署一下ES,就能夠做爲生產環境的系統來使用了,數據量不大,操做不是太複雜
(4)數據庫的功能面對不少領域是不夠用的(事務,還有各類聯機事務型的操做);特殊的功能,好比全文檢索,同義詞處理,相關度排名,複雜數據分析,海量數據的近實時處理;Elasticsearch做爲傳統數據庫的一個補充,提供了數據庫所不不能提供的不少功能