一、分佈式搜索引擎ElasticSearch——基本介紹

分佈式搜索引擎ElasticSearch

1.引入

1.1 爲什麼要使用ElasticSearch?

​ 場景再現:小張在做電商項目的商品搜索相關的事務時,原本使用的是MySQL數據庫進行,但是最近出現了問題,商品越來越多,自然速度也越來越慢。

​ 在測試時,數據僅僅上萬條時,關鍵詞查詢就比較慢了,如果一旦企業級的數據。響應速度就更加不能接受了。原因在於在數據庫做模糊查詢時,如LIKE語句,它會遍歷整張表,同時進行字符串匹配。

2.ElasticSearch簡介

2.1 什麼是ElasticSearch?

​ Elasticsearch是一個實時的分佈式搜索和分析引擎。它可以幫助你用前所未有的速
度去處理大規模數據。ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分
布式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發
的,並作爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用
於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。

2.2 ElasticSearch特點

  • 可以作爲一個大型分佈式集羣(數百臺服務器)技術,處理PB級數據,服務大公司;也可以運行在單機上,服務小公司
  • Elasticsearch不是什麼新技術,主要是將全文檢索、數據分析以及分佈式技術,合併在了一起
  • 對用戶而言,是開箱即用的,非常簡單,作爲中小型的應用,直接3分鐘部署一下ES
  • Elasticsearch作爲傳統數據庫的一個補充,比如全文檢索,同義詞處理,相關度排名,複雜數據分析,海量數據的近實時處理;

2.3 ElasticSearch應用場景

  1. 維基百科,類似百度百科,全文檢索,高亮,搜索推薦
  2. The Guardian(國外新聞網站),類似搜狐新聞,用戶行爲日誌(點擊,瀏覽,收藏,評論)+社交網絡數據(對某某新聞的相關看法),數據分析,給到每篇新聞文章的作者,讓他知道他的文章的公衆反饋(好,壞,熱門,垃圾,鄙視,崇拜)
  3. Stack Overflow(國外的程序異常討論論壇),IT問題,程序的報錯,提交上去,有人會跟你討論和回答,全文檢索,搜索相關問題和答案,程序報錯了,就會將報錯信息粘貼到裏面去,搜索有沒有對應的答案
  4. GitHub(開源代碼管理),搜索上千億行代碼
  5. 電商網站,檢索商品
  6. 日誌數據分析,logstash採集日誌,ES進行復雜的數據分析(ELK技術,elasticsearch+logstash+kibana)
  7. 商品價格監控網站,用戶設定某商品的價格閾值,當低於該閾值的時候,發送通知消息給用戶,比如說訂閱牙膏的監控,如果高露潔牙膏的家庭套裝低於50塊錢,就通知我,我就去買。

2.4 ElasticSearch體系結構

下表是Elasticsearch與MySQL數據庫邏輯結構概念的對比

Elasticsearch 關係型數據庫Mysql
索引(index) 數據庫(databases)
類型(type) 表(table)
文檔(document) 行(row)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章