ElasticSearch導讀

ElasticSearch


簡介:ElasticSearch簡稱ES是一個開源的分布式搜素和數據分析引擎。使用Java開發并且是當前最流行的開源的企業級搜索引擎,能夠達到近實時搜索,它專門設計用于處理大規模的文本數據和實現高性能的全文搜索。它基于 Apache Lucene 構建,專為處理海量數據而設計。它支持全文搜索、結構化查詢、數據分析,并廣泛應用于日志管理(如 ELK Stack)、電商搜索、實時監控等場景。

基本概念

術語說明
索引(Index)類似數據庫中的“表”,存儲相關文檔(如 user_index)。
文檔(Document)索引中的基本數據單元,格式為 JSON(如一條用戶信息)。
分片(Shard)索引被分割成的子部分,支持分布式存儲和并行計算。
節點(Node)一個運行中的 Elasticsearch 實例,多個節點組成集群(Cluster)。

ELK技術棧

Elasticsearch結合Kibana、Logstash、Beats,也就是elastic stack(ELK)。被廣泛應用在日志數據分析,實時監控等領域:

核心組件

組件功能配圖示意(文字描述)
LogstashBeats數據采集與處理:從多種來源(如日志文件、數據庫)收集數據,過濾并格式化后傳輸到 Elasticsearch。[輸入] → Logstash(過濾/轉換) → [輸出]
Elasticsearch數據存儲與檢索:分布式存儲處理后的數據,支持快速搜索和分析。[數據存儲] → Elasticsearch(索引/分片)
Kibana數據可視化:通過圖表、儀表盤展示 Elasticsearch 中的數據。Kibana ← [查詢] → Elasticsearch

總結:ELK 技術棧通過 Logstash/Beats(采集)→ Elasticsearch(存儲)→ Kibana(可視化) 實現數據全生命周期管理,適用于日志分析、運維監控等場景。學習時需掌握各組件配置和協同工作原理。

Elasticsearch和lucene之間的關系

說的專業一點:Elasticsearch 基于 Apache Lucene(高性能全文檢索引擎庫)構建,核心的索引和搜索功能由 Lucene 實現。

說的通俗一點:Lucene 是“發動機”,專注單機性能Elasticsearch 是“整車”,集成發動機并添加了方向盤、底盤(分布式、易用性)

總結:Elasticsearch = Lucene + 分布式 + 易用接口 + 高級功能(如聚合、近實時搜索)。

索引

兩個基本概念:

文檔(Document):文檔是 Elasticsearch 中 最小的數據存儲單元,類似于 Excel 表格中的一行數據,但更靈活。

詞條(Term):詞條是文檔內容經過 分詞處理 后的最小單位,是搜索引擎操作的基本元素。

文檔與詞條的關系:

維度文檔(Document)詞條(Term)
角色數據存儲的基本單位(“完整信息包”)搜索的基本單位(“信息碎片”)
存儲方式原始 JSON 格式,保存在索引(Index)中分詞后存儲在反向索引(Inverted Index)中
操作目標用于增刪改查完整數據用于快速檢索和匹配內容

正向索引:正向索引是 以文檔為中心 的索引結構,記錄每個文檔包含哪些關鍵詞(類似書的目錄,告訴你每本書里有什么內容)。

反向索引:反向索引是 以關鍵詞為核心 的索引結構,記錄每個關鍵詞出現在哪些文檔中(類似詞典的索引頁,告訴你哪個詞在哪本書出現)。

正向索引VS反向索引

正向索引反向索引
核心邏輯文檔→關鍵詞(書→內容)關鍵詞→文檔(詞典→書頁)
搜索效率慢(需遍歷所有文檔)快(直接查關鍵詞對應的文檔)
存儲空間較小較大(需存儲詞頻、位置等額外信息)
典型應用早期搜索引擎、小規模系統現代搜索引擎(Google/Bing)、大數據系統

Mysql與ElasticSearch

  • ES 適合全文搜索和實時分析(如日志、商品搜索)。

  • MySQL 適合強事務和高一致性的業務(如支付、訂單)。

  • 實際項目中常結合使用(如 MySQL 存儲業務數據,ES 提供搜索服務)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907082.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907082.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907082.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【后端高階面經:數據庫篇】18、分布式事務:如何在分庫分表中實現高性能與一致性?

一、分布式事務核心挑戰:分庫分表下的一致性困境 在分布式系統架構中,分庫分表通過將數據分散存儲提升了擴展性和性能,但卻打破了傳統單庫事務的邊界,使得分布式事務成為保障數據一致性的核心難題。其挑戰主要體現在以下三方面: 1.1 ACID特性的分布式撕裂 原子性(Atomi…

Tailwind css實戰,基于Kooboo構建AI對話框頁面(一)

在當今數字化時代,AI 助手已成為網站和應用不可或缺的一部分。本文將帶你一步步使用 Tailwind CSS 和 Kooboo 構建一個現代化的 AI 對話界面框。 一、選擇 Kooboo平臺 的核心優勢 智能提示:在輸入 class 屬性時,會自動觸發 Tailwind CSS 規則…

python學習day2:進制+碼制+邏輯運算符

進制 Python 中的進制表示與轉換 進制的基本概念 二進制、八進制、十進制、十六進制的定義與特點不同進制在計算機科學中的應用場景 Python 中的進制表示 二進制表示:使用 0b 前綴八進制表示:使用 0o 前綴十六進制表示:使用 0x 前綴示例…

ROS2學習(11)------ROS2通信接口

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 ROS版本:2 ROS 2 提供了多種通信接口,用于節點之間的數據交換。這些接口主要包括話題(Topics)、服務(Services)、動作&…

STM32G0xx基于串口(UART)Ymodem協議實現OTA升級包括Bootloader、上位機、應用程序

STM32G0xx基于串口Ymodem協議實現OTA升級包括Bootloader、上位機、應用程序 例程說明一、串口相關的底層配置二、OTA相關的應用層三、Flash相關的操作四、Flash存儲參數相關五、核心部分Ymodem相關六、其他宏配置七、主函數八、使用Python合并文件九、測試結果有疑問歡迎加交流…

Jenkins實踐(6):配置“構建歷史的顯示名稱,加上包名等信息“

Jenkins實踐(6):配置“構建歷史的顯示名稱,加上包名等信息“ 版本:Jenkins 4.262.2 需求:想要在構建歷史中展示,本次運行的是哪個版本或哪個包 操作步驟: 1、先安裝插件Build Name and Description Setter 2、Set Build Name 3、構建歷史處查看展示 插件特性說明 安裝依賴…

快速解決azure aks aad身份和權限問題

現狀分析 AKS cluster 1.31.8啟用aad 身份驗證和kubernetes RBAC 當嘗試執行kubectl get node命令時,系統返回以下錯誤信息: Error from server (Forbidden): nodes is forbidden: User "357517e8-4df5-4daa-88b4-94a84d763ec5" cannot list…

【玩轉騰訊混元大模型】騰訊混元大模型AIGC系列產品深度體驗

【玩轉騰訊混元大模型】騰訊混元大模型AIGC系列產品深度體驗 騰訊推出的系列AI產品:混元大模型、大模型圖像創作引擎、大模型視頻創作引擎、騰訊元寶,共同構成了一個強大的AI生態系統;憑借騰訊自研的大規模預訓練技術和先進的自然語言處理、計…

(自用)Java學習-5.13(Redis,OSS)

核心功能實現 1. 類別導航動態加載 前端實現&#xff1a; // 加載一級分類 $.ajax({url: /category/showFirstMenu?pid0,success: function(resp) {resp.forEach(item > {$(".index-menu").append(<li onmouseover"showSecondMenu(${item.id})">…

2025電工杯A題電工杯數學建模思路代碼文章教學:光伏電站發電功率日前預測問題

完整內容請看文章最下面的推廣群 已更新數據、思路和模型 問題1&#xff1a;基于歷史功率的光伏電站發電特性分析 建模與求解思路&#xff1a; 首先&#xff0c;需要收集光伏電站的歷史發電功率數據、地理位置信息&#xff08;經緯度、海拔、傾角等&#xff09;以及太陽輻照…

Visual Studio 調試中 PDB 與圖像不匹配

Visual Studio 調試中 PDB 與圖像不匹配 在使用 Visual Studio 進行本地或遠程調試時&#xff0c;很多開發者會遇到 PDB 加載失敗、符號不匹配的問題&#xff0c;甚至程序進程未退出&#xff0c;導致 .exe 文件無法成功覆蓋。本文詳細解析了從后臺進程清理、構建產物驗證、模塊…

WebRTC:實時通信的未來之路

WebRTC&#xff1a;實時通信的未來之路 目錄 WebRTC&#xff1a;實時通信的未來之路一、背景介紹二、使用方式三、前途展望 一、背景介紹 隨著互聯網的飛速發展&#xff0c;實時音視頻通信需求日益增長。傳統的音視頻通信多依賴于專有協議和插件&#xff08;如Flash、ActiveX等…

華為OD機試真題——猴子吃桃/愛吃蟠桃的孫悟空(2025B卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 B卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式! 本文收錄于專欄:《2025華為OD真題目錄+全流程解析/備考攻略/經驗分享》 華為OD機試真題《猴子…

【Java學習筆記】單例設計模式

單例設計模式 單例模式介紹 1. 所謂類的單例設計模式&#xff0c;就是采取一定的方法保證在整個的軟件系統中 &#xff08;1&#xff09;對某個類只能存在一個對象實例 &#xff08;2&#xff09;并且該類只提供一個取得對象實例的方法 2. 分類&#xff08;兩種方式&#xf…

vue實例 與組件實例

vue實例 與組件實例流程圖 &#x1f9e9; 基本解釋 ? Vue 實例 Vue 實例是通過 new Vue({…}) 創建的對象&#xff0c;是整個應用的根節點。 const vm new Vue({el: #app,data: { msg: Hello Vue } });是整個應用的起點。只有一個根 Vue 實例&#xff08;通常&#xff09;…

Hive 分桶(Bucketing)深度解析:原理、實戰與核心概念對比

一、分桶的意義&#xff1a;比分區更細的粒度管理 1.1 解決分區數據不均勻問題 分區的局限性&#xff1a;分區基于表外字段&#xff08;如時間字段&#xff09;劃分數據&#xff0c;但可能導致部分分區數據量過大&#xff0c;部分過小&#xff0c;無法進一步細化。 分桶的定…

pytest+allure+allure-pytest 報告輸出遇到的問題匯總

文章目錄 前言問題一&#xff1a;module allure has no attribute severity_level問題二&#xff1a;ERROR:file or directory not found: ‐vs問題三&#xff1a;生成的 html 報告是空的&#xff0c;明明有測試用例執行完成&#xff0c;但報告沒有顯示數據 前言 pytestallure…

升級node@22后運行npm install報錯 distutils not found

從node20升級到node22后&#xff0c;在運行 npm install 的時候報了很多 gyp 錯誤&#xff0c;其中包括 npm error npm error ModuleNotFoundError: No module named distutils。 問題原因是我在使用 brew install node22 的過程中自動把 python 升級到了 3.13。而 distutils …

IPD流程落地:項目任務書Charter開發

目錄 簡介 第一個方面&#xff0c;回答的是Why的問題。 第二點&#xff0c;要回答做什么的問題&#xff0c;也就是產品定義What的問題。 第三點就是要回答執行策略與計劃的問題&#xff0c;也就是How、When、Who的問題。 第四點是對上述這些分析的總結分析&#xff0c;要為…

Qt popup窗口半透明背景

半透明彈窗需要paintEvent()接口支持 方法一&#xff1a;使用setStyleSheet設置半透明樣式&#xff0c;如果是子窗口&#xff0c;則可注釋構建函數內屬性設置 class TranslucentWidget : public QWidget { public: explicit TranslucentWidget(QWidget *parent nullptr)…