首頁 | 資訊 | 財經 | 公益 | 彩店 | 奇聞 | 速遞 | 前瞻 | 提點 | 網站相關 | 科技 | 熱點 |
      【ES三周年】ElasticSearch數據庫簡單介紹

      發稿時間:2023-02-17 11:03:56 來源: 騰訊云

      elasticsearch簡介

      ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發的,并作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。

      elasticSearch的使用場景

      1、為用戶提供按關鍵字查詢的全文搜索功能。


      (相關資料圖)

      2、實現企業海量數據的處理分析的解決方案。大數據領域的重要一份子,如著名的ELK框架(ElasticSearch,Logstash,Kibana)。

      與其他數據存儲進行比較

      elasticsearch的特點

      1,天然分片,天然集群

      es 把數據分成多個shard,下圖中的P0-P2,多個shard可以組成一份完整的數據,這些shard可以分布在集群中的各個機器節點中。隨著數據的不斷增加,集群可以增加多個分片,把多個分片放到多個機子上,已達到負載均衡,橫向擴展。

      在實際運算過程中,每個查詢任務提交到某一個節點,該節點必須負責將數據進行整理匯聚,再返回給客戶端,也就是一個簡單的節點上進行Map計算,在一個固定的節點上進行Reduces得到最終結果向客戶端返回。

      2,天然索引

      ES 所有數據都是默認進行索引的,這點和mysql正好相反,mysql是默認不加索引,要加索引必須特別說明,ES只有不加索引才需要說明。

      而ES使用的是倒排索引和Mysql的B+Tree索引不同。

      傳統關系性數據庫

      弊端:

      1、 對于傳統的關系性數據庫對于關鍵詞的查詢,只能逐字逐行的匹配,性能非常差。

      2、匹配方式不合理,比如搜索“小密手機” ,如果用like進行匹配, 根本匹配不到。但是考慮使用者的用戶體驗的話,除了完全匹配的記錄,還應該顯示一部分近似匹配的記錄,至少應該匹配到“手機”。

      倒排索引是怎么處理的

      全文搜索引擎目前主流的索引技術就是倒排索引的方式。

      傳統的保存數據的方式都是

      記錄→單詞

      而倒排索引的保存數據的方式是

      單詞→記錄

      索引結構對比

      B+Tree

      lucene 倒排索引結構

      可以看到 lucene 為倒排索引(Term Dictionary)部分又增加一層Term Index結構,用于快速定位,而這Term Index是緩存在內存中的,但mysql的B+tree不在內存中,所以整體來看ES速度更快,但同時也更消耗資源(內存、磁盤)。

      lucene與elasticsearch的關系

      咱們之前講的處理分詞,構建倒排索引,等等,都是這個叫lucene的做的。那么能不能說這個lucene就是搜索引擎呢?

      還不能。lucene只是一個提供全文搜索功能類庫的核心工具包,而真正使用它還需要一個完善的服務框架搭建起來的應用。

      好比lucene是類似于發動機,而搜索引擎軟件(ES,Solr)就是汽車。

      目前市面上流行的搜索引擎軟件,主流的就兩款,elasticsearch和solr,這兩款都是基于lucene的搭建的,可以獨立部署啟動的搜索引擎服務軟件。由于內核相同,所以兩者除了服務器安裝、部署、管理、集群以外,對于數據的操作,修改、添加、保存、查詢等等都十分類似。就好像都是支持sql語言的兩種數據庫軟件。只要學會其中一個另一個很容易上手。

      從實際企業使用情況來看,elasticSearch的市場份額逐步在取代solr,國內百度、京東、新浪都是基于elasticSearch實現的搜索功能。國外就更多了 像維基百科、GitHub、Stack Overflow等等也都是基于ES的。

      標簽: 搜索引擎 云數據庫 Server

      責任編輯:mb01

      網站首頁 | 關于我們 | 免責聲明 | 聯系我們

      生活晚報網版權所有

      Copyright @ 1999-2017 www.8x5.com.cn All Rights Reserved豫ICP備20022870號-23

      聯系郵箱:553 138 779@qq.com