ElasticSearch 入門簡介

公號:碼農充電站pro
主頁://codeshellme.github.io

在這裡插入圖片描述

ElasticSearch 是一款強大的、開源的、分佈式搜索與分析引擎,簡稱 ES,它提供了實時搜索聚合分析兩大功能。

使用 ES 可以構建可擴展的搜索應用,從而幫助我們在海量數據中,快速找到想要的內容。

elastic 的含義是靈活的,有彈性的。

1,ES 的誕生與發展

ES 是基於 Lucene 開發的一款搜索應用。

Lucene 是一個基於 Java 語言的搜索引擎庫,它由 Doug Cutting 創建於 1995 年,並於 2005 年成為 Apache 頂級開源項目。

Doug Cutting

(上圖為 Doug Cutting

Doug Cutting 就是大名鼎鼎的 Hadoop 之父。

雖然 Lucene 非常強大,但它只是一個 Java 類庫,而且學習成本較高。

ES 的創始人 Shay Banon 在 2004 年,基於 Lucene 創建了一個開源項目 Compass,後於 2010 年改名為 ElasticSearch。

在這裡插入圖片描述

(上圖為 Shay Banon

從一開始 ES 就具備了可擴展,分佈式,易用的特點,ES 的這些優點使得它很快的流行開來。

Shay Banon 在 2010 年發佈了 ES 的第一個版本,並於 2012 年成立了公司,來提供更加完善的產品和服務。

2015年,公司名稱從 Elasticsearch 改為 Elastic。因為此時,公司的殺手級產品已經不僅僅是 Elasticsearch 了,而且還包括了 LogstashKibana,這三款應用統稱為 ELK

2018年,Elastic 在紐交所成功上市,如今的市值早已過百億美元。

ES 的重要版本發佈時間表

發佈時間 版本
2010 年 2 月 第一個版本 0.4 發佈
2014 年 1 月 1.0 版
2015 年 10 月 2.0 版
2016 年 10 月 5.0 版
2017 年 10 月 6.0 版
2019 年 4 月 7.0 版

關於 Elastic 產品的生命周期可參考這裡

2,ES 產品家族

Elastic 公司圍繞 ElasticSearch,有着豐富的產品家族,叫作 ELK Stack,其中包含了 4 個產品:

  • Kibana:用於數據可視化。
    • Rashid Khan 創建,2013 年被 Elastic 收購。
  • ElasticSearch:ELK Stack 的核心組件,具有數據搜索與聚合能力。
  • Beats:輕量型數據採集器,基於 Golang 開發。
  • Logstash:用於數據採集,支持從不同的數據源採集數據及轉換數據。
    • Jordan Sisel 創建於 2009 年,2013 年被 Elastic 收購。

這四款產品的層級關係如下:

在這裡插入圖片描述

3,ES 使用架構

將 ES 應用到項目中時,可以有兩種架構,一種是使用 ES 作為唯一的後端;另一種是 ES 與數據庫系統配合,一同作為後端。

ES 作為唯一後端

ES 作為一個現代化的搜索引擎,它本身除了擁有檢索功能外,還擁有存儲功能。因此,在一個不複雜的項目中,可以將 ES 作為唯一的後端來使用。

在這裡插入圖片描述

ES 與數據庫系統配合

在比較複雜的項目中,ES 無法提供傳統數據庫的所有功能(比如事務處理),因此需要將 ES 和傳統數據庫來配合使用。

在這裡插入圖片描述

4,ES 的競爭對手

ES 主要有 SolrSplunk 兩個競爭對手。

在這裡插入圖片描述

Solr 也是基於 Lucene 的一款搜索引擎,Lucene 與 Solr 已於 2010 年合併成為 Apache 的頂級項目。

Splunk 是一個專業的數據處理平台。

目前在 DB-Engines 的搜索引擎排名中,SE、Splunk、Solr 分別位於第一、二、三名。

在這裡插入圖片描述

5,ES 的應用

ES 客戶端接口

ES 支持豐富的 Clients 接口可與其進行交互,使得開發者可以用多種編程語言,多種方式進行接入。

ES 企業應用

在這裡插入圖片描述

目前你所熟知的很多應用都使用了 ES 來提供搜索功能,比如 GitHub,Wikipedia 等。

ES 雲服務商

很多大的雲服務商都提供了 ES 託管服務,比如谷歌,微軟,亞馬遜,阿里巴巴等。

6,ES 官方文檔

這裡是 Elastic 所有產品的學習文檔。

在這裡插入圖片描述

7,總結

ES 是一款強大的搜索引擎系統,我們可以基於它為用戶提供搜索功能。

ES 提供了豐富的客戶端接口和 ELK Stack 產品家族供開發者使用,極大的降低了企業構建搜索服務的難度。

ELK Stack 被廣泛應用於搜索、日誌管理、安全分析、指標分析、業務分析、性能監控等領域。

下一節將介紹 ES 的安裝及簡單使用。

(本節完。)


歡迎關注作者公眾號,獲取更多技術乾貨。

碼農充電站pro