ElasticSearch 入門簡介

碼農充電站發表於2021-02-03

公號:碼農充電站pro
主頁:https://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

相關文章