主頁 >  其他 > Elasticsearch到底是什么?

Elasticsearch到底是什么?

2022-03-07 08:00:04 其他

📢📢📢📣📣📣

哈嘍!大家好,我是【一心同學】,一位上進心十足的【Java領域博主】!😜😜😜

?【一心同學】的寫作風格:喜歡用【通俗易懂】的文筆去講解每一個知識點,而不喜歡用【高大上】的官方陳述,

?【一心同學】博客的領域是【面向后端技術】的學習,未來會持續更新更多的【后端技術】以及【學習心得】,

?如果有對【后端技術】感興趣的【小可愛】,歡迎關注一心同學】💞💞💞

??????感謝各位大可愛小可愛!??????


目錄

一、Elasticsearch介紹

1.1 概述

1.2 搜索引擎是什么?

1.3 全文檢索是什么?

二、ES特點

三、ES概念

3.1 基本概念

3.1.1 索引(index)

3.1.2 型別(type)

3.1.3 檔案(document)

3.1.4 映射(mapping)

3.1.5 倒排索引

3.2 ES集群核心概念

3.2.1 集群(cluster)

3.2.2 節點(node)

3.2.3 分片(shard)

3.2.4 副本(replica)

四、應用場景

🌴 場景一:搜索服務

🌵 典型場景

🔥 主要特性

🚀 相關公司

🌴 場景二:日志實時分析

🌵 典型場景

🔥 主要特性

🚀 相關公司

🌴 場景三:商業智能BI

🌵 典型場景

🔥 主要特性

🚀 相關公司

小結


一、Elasticsearch介紹

1.1 概述

Elasticsearch簡稱ES,是一個高擴展、開源、分布式全文檢索分析引擎,它可以準實時地快速存盤、搜索、分析海量的資料,而且ES本身擴展性很好,既可以擴展到上百臺服務器,處理PB級別(大資料時代)的資料,服務大公司,也可以運行在單機上,服務小公司,

據國際權威的資料庫產品評測機構DB Engines的統計,在2016年1月,Elasticsearch已超過Solr等,成為排名第一的搜索引擎類應用

1.2 搜索引擎是什么?

所謂搜索引擎,就是根據用戶需求與一定演算法,運用特定策略從互聯網檢索出制定資訊反饋給用戶的一門檢索技術,例如我們在淘寶進行購物時,當我們輸入關鍵字“衣服”,那么淘寶就會給我們回傳各種型別的衣服(男裝/女裝),實作這個功能的背后就是搜索引擎的功勞,

1.3 全文檢索是什么?

全文檢索是指計算機索引程式通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現的次數和位置,當用戶查詢時,檢索程式就根據事先建立的索引進行查找,并將查找的結果反饋給用戶的檢索方式,這個程序類似于通過字典中的檢索字表查字的程序,

全文檢索的方式主要有兩種:

(1)按字檢索:指對于文章中的每一個字都建立索引,檢索時將詞分解為字的組合,

(2)按詞檢索:指對文章中的詞,即語意單位建立索引,檢索時按詞檢索,并且可以處理同義項等,

二、ES特點

(1)分布式:橫向擴展非常靈活

(2)高度的可伸縮性 :可以搭建大型的分布式集群,處理PB級的資料服務于大公司,也可以運行在單機上,服務于小公司

(3)高可用:容錯機制,自動發現新的或失敗的節點,重組和重新平衡資料

(4)全文檢索:基于lucene的強大的全文檢索能力

(5)模式自由:ES的動態mapping機制可以自動檢測資料的結構和型別,創建索引并使資料可搜索

(6)開箱即用:對用戶而言開箱即用,非常簡單,作為中小型的應用,直接三分鐘部署ES,就可以作為生產環境系統來使用了,

三、ES概念

3.1 基本概念

ES中有幾個基本概念:索引(index)型別(type)檔案(document)映射(mapping)等,我們將這幾個概念與傳統的關系型資料庫中的等概念進行對比,如下表:

RDBS

ES

資料庫(database)索引(index)
表(table)型別(type)(ES6.0之后被廢棄,es7中完全洗掉)
表結構(schema)映射(mapping)
行(row)檔案(document)
列(column)欄位(field)
索引反向索引
SQL查詢DSL
SELECT * FROM tableGET http://.....
UPDATE table SETPUT http://......
DELETEDELETE http://......

3.1.1 索引(index)

索引是ES的一個邏輯存盤,對應關系型資料庫中的庫,ES可以把索引資料存放到服務器中,也可以sharding(分片)后存盤到多臺服務器上,每個索引有一個或多個分片,每個分片可以有多個副本,

3.1.2 型別(type)

ES中,一個索引可以存盤多個用于不同用途的物件,可以通過型別來區分索引中的不同物件對應關系型資料庫中表的概念

3.1.3 檔案(document)

存盤在ES中的主要物體叫檔案,可以理解為關系型資料庫中表的一行資料記錄,每個檔案由多個欄位(field)組成,區別于關系型資料庫的是,ES是一個非結構化的資料庫,每個檔案可以有不同的欄位,并且有一個唯一標識,

由于Elasticsearch是面向檔案的,那么就意味著索引和搜索資料的最小單位是檔案, ES中,檔案有幾個重要屬性:

(1)自我包含: 一篇檔案同時包含欄位和對應的值,也就是同時包含key:value !

(2)層次型:,一個檔案中包含自檔案,復雜的邏輯物體就是這么來的! {就是一 個json物件! fastjson進行自動轉換!}

(3)靈活的結構:檔案不依賴預先定義的模式,我們知道關系型資料庫中,要提前定義欄位才能使用,在elasticsearch中,對于欄位是非常靈活的,有時候,我們可以忽略該欄位,或者動態的添加一個新的欄位,

3.1.4 映射(mapping)

mapping對索引庫中的索引欄位及其資料型別進行定義類似于關系型資料庫中的表結構,ES默認動態創建索引和索引型別的mapping,這就像是關系型資料中的,無需定義表機構,更不用指定欄位的資料型別,同時我們也可以手動指定mapping型別,

3.1.5 倒排索引

倒排索引也叫反向索引,有反向索引必有正向索引,通俗來講,正向索引是通過key找value,反向索引則是通過value找key,

倒排索引操作步驟:

(1)先將檔案中包含的關鍵字全部提取出來

(2)然后再將關鍵字與檔案的對應關系保存起來

(3)最后對關鍵字本身做索引排序

這樣在用戶檢索關鍵字時, 可以先查找關鍵字索引,在通過關鍵字與檔案的對應關系查找到所在的檔案,

如下面的兩個檔案:

檔案1: I love elasticsearch
檔案2: I love logstash

他們對應的倒排索引為:

("√" 表示檔案中包含這個關鍵字)

序號關鍵字檔案1檔案2
1I

2love

3elasticsearch

4logstash

現在,我們試圖搜索 love elasticsearch,只需要查看包含每個詞條的檔案

關鍵字檔案1檔案2
love
elasticsearchx
total21

兩個檔案都匹配,但是第一個檔案比第二個匹配程度更高,如果沒有別的條件,現在,這兩個包含關鍵字的檔案都將回傳,

3.2 ES集群核心概念

3.2.1 集群(cluster)

集群由許多結點Node組成,其中一個為主節點,這個主節點是可以通過選舉產生的,主從節點是對于集群內部來說的,ES的一個概念就是去中心化,字面上理解就是無中心節點,這是對于集群外部來說的,因為從外部來看ES集群,在邏輯上是個整體,你與任何一個節點的通信和與整個ES集群通信是等價的,


3.2.2 節點(node)

一個es實體即為一個節點,一臺機器可以有多個節點,正常使用下每個實體都會部署在不同的機器上,

ES的組態檔中可以通過node.master、 node.data 來設定節點型別:

node.master: true/false 表示節點是否具有成為主節點的資格
node.data: true/false 表示節點是否為存盤資料

node節點的組合方式:

主節點+資料節點: 默認方式,節點既可以作為主節點,又存盤資料
資料節點: 節點只存盤資料,不參與主節點選舉
客戶端節點: 不會成為主節點,也不存儲資料,主要針對海量請求時進行負載均衡

3.2.3 分片(shard)

概述:

代表索引分片,如果我們的索引資料量很大,超過硬體存放單個檔案的限制,就會影響查詢請求的速度,ES引入了分片技術,可以把一個完整的索引分成多個分片,一個分片本身就是一個完成的搜索引擎,檔案存盤在分片中,而分片會被分配到集群中的各個節點中,隨著集群的擴大和縮小,ES會自動的將分片在節點之間進行遷移,以保證集群能保持一種平衡,

這樣的好處是可以把一個大索引拆分成多個,分布到不同的節點上,構成分布式搜索,分片的數量只能在索引創建前指定,并且索引創建后不能更改

特點:

(1)ES的一個索引可以包含多個分片(shard);
(2)每一個分片(shard)都是一個最小的作業單元,承載部分資料;
(3)每個shard都是一個lucene實體,有完整的簡歷索引和處理請求的能力
(4)增減節點時,shard會自動在nodes中負載均衡
(5)一個檔案只能完整的存放在一個shard上
(6)分片的數量只能在索引創建前指定,并且索引創建后不能更改,如一個索引中含有shard的數量,默認值為5,在索引創建后這個值是不能被更改的,
(7)每一個shard關聯的副本分片(replica shard)的數量,默認值為1,這個設定在任何時候都可以修改,


優點:

(1)水平分割和擴展我們存放的內容索引;

(2)分發和并行跨碎片操作提高性能/吞吐量;

3.2.4 副本(replica)

代表索引副本,ES可以設定多個索引的副本,副本的作用如下:

(1)提高系統的容錯性,當某個節點某個分片損壞或丟失時可以從副本中恢復,

(2)提高ES的查詢效率,ES會自動對搜索請求進行負載均衡,

四、應用場景

🌴 場景一:搜索服務

🌵 典型場景

  • 儀表盤搜索

  • 電子商務

  • 手機應用搜索

  • 地理位置搜索

🔥 主要特性

  • 高性能:高并發、低延遲的搜索體驗

  • 強相關:自定義打分、排序機制

  • 高可用:機房、機架感知,異地容災

🚀 相關公司

騰訊健康碼、騰訊檔案全文檢索、攜程、拼多多、蘑菇街、滴滴、今日頭條、貝殼找房…….

🌴 場景二:日志實時分析

🌵 典型場景

  • 業務日志:用戶行為日志、應用日志

  • 狀態日志:慢查詢、例外探測

  • 系統日志:debug、info、warn、error、fatal

🔥 主要特性

  • 實時性:從日志產生到可訪問,秒級

  • 全文搜索:基于倒排索引,支持靈活的搜索分析

  • 互動式分析:萬億級日志,搜索秒級回應

🚀 相關公司

日志易

🌴 場景三:商業智能BI

🌵 典型場景

電子商務、移動應用、廣告媒體等業務都需要借助資料分析和資料挖掘來輔助商業決策,而規模龐大的業務資料對資料的統計分析造成了很大的挑戰,

🔥 主要特性

  • ES 擁有結構化查詢的能力,支持復雜的過濾和聚合統計功能,

  • 幫助客戶對海量資料進行高效地個性化統計分析、發現問題與機會、輔助商業決策,讓資料產生真正的價值,

🚀 相關公司

睿思BI


小結

以上就是【一心同學】對【Elasticsearch】的介紹,也帶大家去理解了ES中的各種【基本概念】和ES在我們生活中的【應用場景】,相信大家現在對ES已經不再陌生了,而在接下來的博客中,【一心同學】將會向為大家繼續講解【ES的操作】,

如果這篇【文章】有幫助到你,希望可以給【一心同學】點個👍,創作不易,相比官方的陳述,我更喜歡用【通俗易懂】的文筆去講解每一個知識點,如果有對【后端技術】感興趣的小可愛,也歡迎關注?????? 【一心同學】??????,我將會給你帶來巨大的【識訓與驚喜】💕💕!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/438675.html

標籤:其他

上一篇:手把手教你搭建HADOOP集群

下一篇:PyTorch:資料加載,數學原理,貓魚分類,CNN,預訓練,遷移學習

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more