Elasticsearch 核心特性與應用指南

最近在準備面試,正把平時積累的筆記、項目中遇到的問題與解決方案、對核心原理的理解,以及高頻業務場景的應對策略系統梳理一遍,既能加深記憶,也能讓知識體系更扎實,供大家參考,歡迎討論。

一、核心優勢

Elasticsearch可以實現秒級的搜索,cluster(集群)分布式部署,極易擴展,這樣很容易使它處理PB級的數據庫容量。最重要的是Elasticsearch使它搜索的結果可以按照分數進行排序,它能提供我們最相關的搜索結果(relevance-相關性)。

二、主要特點

  1. 安裝方便:沒有其他依賴,下載后安裝非常方便;只用修改幾個參數就可以搭建起來一個集群(工作中一般使用阿里云等云廠商的ES服務,很少有自己搭建的)

  2. JSON格式:輸入/輸出格式為JSON,意味著不需要定義Schema,快捷方便

    • Schema(模式)通常指的是一種描述數據結構的規范或定義。它定義了數據的組織方式、字段的類型以及數據之間的關系。使用模式能夠確保數據的一致性、完整性和有效性,并為數據的生成、解析、驗證提供了標準
  3. RESTful接口:基本所有操作(索引、查詢、甚至是配置)都可以通過HTTP接口進行

  4. 分布式架構:節點對外表現對等(每個節點都可以用來做入口),加入節點自動負載均衡

  5. 多租戶支持:可根據不同的用途分索引,可以同時操作多個索引

    • 共享底層資源、邏輯隔離上層數據、支持并行操作
    • 在Elasticsearch中,多租戶模式通常涉及根據不同的用途或不同的用戶組織創建不同的索引,使得這些索引能夠彼此獨立存在,而且可以同時操作多個索引。這樣的設計允許不同的用戶、組織或應用程序在同一個Elasticsearch集群中使用各自的索引,實現數據的隔離和獨立管理
  6. 大數據支持:可以擴展到PB級的結構化和非結構化數據,支持海量數據的近實時處理

三、核心功能

  1. 分布式搜索引擎
    • 自動將海量數據分散到多臺服務器上去存儲和檢索
  2. 全文檢索
    • 提供模糊搜索等自動化程度很高的查詢方式,并進行相關性排名,高亮等功能
  3. 數據分析引擎(分組聚合)
    • 適用于社區網站等場景的最近一周用戶登錄、最近一個月各功能使用情況等分析
  4. 近實時處理
    • 對海量數據進行近實時(秒級)的處理,采用分布式架構實現水平擴展

四、應用場景

  1. 搜索類場景
    • 人員檢索、設備檢索、App內的搜索、訂單搜索、IM消息搜索
  2. 日志分析類場景
    • 經典的ELK組合(Logstash/Elasticsearch/Kibana),實現日志收集,日志存儲,日志分析
  3. 數據預警平臺及數據分析場景
    • 例如社區團購提示,當優惠的價格低于某個值時,自動觸發通知消息
    • 分析競爭對手商品銷量Top10,供運營分析
  4. 商業智能(BI)系統
    • 分析某一地區用戶消費金額及商品類別,輸出相應的報表數據
    • 預測該地區的熱賣商品,通過區域和人群特征劃分進行定向推薦
    • Elasticsearch執行數據分析和挖掘,Kibana做數據可視化

五、競品對比

  1. Lucene
    • Java編寫的信息搜索工具包(Jar包),只是一個框架,熟練運用非常復雜
  2. Solr
    • 基于Lucene的HTTP接口查詢服務器,是一個封裝了很多Lucene細節的搜索引擎系統
  3. Elasticsearch
    • 基于Lucene的分布式海量數據近實時搜索引擎,采用的策略是將每一個字段都編入索引,使其可以被搜索

對比

  1. Solr利用Zookeeper進行分布式管理,而Elasticsearch自身帶有分布式協調管理功能
  2. Solr比Elasticsearch實現更加全面,而Elasticsearch本身更注重于核心功能,高級功能多由第三方插件提供
  3. Solr在傳統的搜索應用中表現好于Elasticsearch,而Elasticsearch在實時搜索應用方面比Solr表現好

當前版本信息

  • 目前主流依然是Elasticsearch7.x,最新的是7.8,推薦使用JDK11(LTS),也兼容JDK8,目前工作中用到的
  • 優化:集成默認JDK、升級Lucene8大幅提升TopK性能、引入熔斷機制避免OOM發生
    • 集成默認JDK:確保Elasticsearch版本與JDK版本兼容
    • 升級Lucene8:帶來性能提升,但需確保版本匹配
    • 引入熔斷機制:避免OOM錯誤,需合理配置參數

六、多租戶架構

  1. 概念
    • 允許單一軟件實例同時為多個租戶提供服務,每個租戶擁有獨立空間和資源
  2. Elasticsearch中的實現
    • 通過不同索引為每個租戶分隔數據
    • 提供RBAC和索引別名實現權限管理和操作靈活性
  3. 關鍵要素
    • 租戶:獨立使用者或實體
    • 索引隔離:為每個租戶分配獨立的索引空間(單個或多個索引)
    • 權限控制:管理各租戶數據訪問權限
    • 資源隔離:保障各租戶資源配額

七、字段索引控制

  1. 索引設置選項
    • “index”: true:默認設置,字段會被分析以支持全文搜索
    • “index”: false:不對該字段建立索引,適用于不需要搜索的字段
    • “index”: “no”:早期版本中表示不建立索引(與false相似)
  2. 應用場景
    • 對不需要進行搜索的字段禁用索引,可減少存儲空間并提高索引構建速度

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

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

相關文章

力扣115:不同的子序列

力扣115:不同的子序列題目思路代碼題目 給你兩個字符串 s 和 t ,統計并返回在 s 的 子序列 中 t 出現的個數。 測試用例保證結果在 32 位有符號整數范圍內。 思路 首先我們來考慮特殊情況,當s串的長度小于t串時s串肯定就沒有t串了。其他情況我們就需…

2004-2023年各省生活垃圾無害化處理率數據(無缺失)

2004-2023年各省生活垃圾無害化處理率數據(無缺失) 1、時間:2004-2023年 2、來源:國家統計局、統計年鑒 3、指標:生活垃圾無害化處理率 4、范圍:30省 5、指標解釋:生活垃圾無害化處理率指報…

【Python練習題】Python小白必練100題答案-第21-40題

練習題直達鏈接Python小白必練100題答案-第1-20題點我直達Python小白必練100題答案-第21-40題點我直達Python小白必練100題答案-第41-60題點我直達Python小白必練100題答案-第61-80題點我直達Python小白必練100題答案-第81-97題點我直達目錄專欄導讀循環結構 字符串操作第三部…

添加?件--場景?

添加?件–場景? 學習到這?,我們已經清楚了如何向倉庫中添加?件,并且對于?作區、暫存區、版本庫也有了?定的認識。那么我們再展??種添加?件的場景,能加深對?作區、暫存區、版本庫的理解,?例如下: roothcss-e…

華為網路設備學習-31(BGP協議 六)

BGP路由屬性的幾種常見使用方法: 29章是 BGP路由匯總 與 as-path-filter(正則表達式) 30章是 Community 的使用方法 本章是 ip前綴列表ip-prefix 、 路由過濾 filter-policy 和路由策略 route-policy 一、在BGP中的 ip前綴列表&#xf…

Windows PostgreSQL JDBC驅動安裝包位置

要在Windows系統上獲取PostgreSQL JDBC驅動安裝包(后綴為.jar的文件),可通過以下官方及常用渠道獲取,具體位置如下: ###🔧 1. 官方網站下載(推薦) 下載地址:https://jdb…

機器學習從入門到精通 - 聚類算法大比拼:K-Means、DBSCAN實戰與評估陷阱

機器學習從入門到精通 - 聚類算法大比拼:K-Means、DBSCAN實戰與評估陷阱 開場白:推開無監督學習的大門 朋友們,不知道你們有沒有對著堆積如山、沒有標簽的數據發過愁?想從里面找出點規律,分組什么的,結果發…

AI 重構內容創作:從文案生成到視頻剪輯,創作者該如何與 AI 協同共生?

一、引言:AI 掀起內容創作的 “重構浪潮”?行業現象引入:列舉 AI 在內容創作領域的爆發式應用案例(如某平臺 AI 文案工具日生成量破百萬、AI 視頻剪輯軟件用戶增長超 300%)?創作者需求變化:通過調研數據說明創作者對…

后端一次性返回十萬條數據時,前端需要采用多種性能優化策略來避免頁面卡頓

當后端一次性返回十萬條數據時,前端需要采用多種性能優化策略來避免頁面卡頓。以下是主要的優化方案: 分頁加載 - 將數據分批次加載顯示虛擬滾動 - 只渲染可視區域內的數據數據懶加載 - 按需加載數據Web Workers - 在后臺線程處理數據時間切片 - 分散渲染…

基于-輕量級文檔搜索系統的測試報告

文章目錄一、項目背景二、項目功能三、測試計劃(一)測試用例設計(二)測試用例實現1.功能測試2.界面測試3.兼容性測試4.易用性測試5.安全性測試一、項目背景 1.基于輕量級文檔檢索系統采用C技術棧來實現,同時使用了本地…

編輯器vim(Linux)

Linux下開發工具是獨立的寫代碼——編輯器 vim編譯代碼——gcc/g調試——gdb、cgdb構建工具——makefile、make、cmakevim只用來寫代碼注意:直接用vim打開一個不存在的文件并保存退出,就會自動生成該文件vim有多種模式命令模式(Normal Mode&a…

GitLab,2025最新如何配置中的SSH key步驟

電腦右鍵先檢查,是否有公鑰 git cat ~/.ssh/id_rsa.pub下面是有,不用生成公鑰,沒有就要生成生成本地電腦公鑰, 建議用第二種 //第一種ssh-keygen -t rsa//第二種------- 1.打開git bash,輸入:ssh-keygen -t rsa -C “你的郵箱”ss…

華為HCIE證書多久續一次費?費用多少?

根據華為官方政策,華為認證HCIE的有效期為3年,有效期自證書正式發放之日起計算,考生可通過華為人才在線官網登錄個人賬號,在“我的證書”欄目中查詢具體有效期起止時間。一、HCIE證書到期后的續證方式 1.重考對應HCIE的認證考試&a…

提升文本到圖像強化學習穩定性:Pref - GRPO算法如何革新圖像生成?

提升文本到圖像強化學習穩定性:Pref - GRPO算法如何革新圖像生成? 在文本到圖像生成領域,強化學習正重塑著模型與人類偏好的對齊方式。本文聚焦于一種創新的基于成對偏好獎勵的GRPO方法(Pref - GRPO),它通…

Linux UDisks守護進程曝本地提權漏洞CVE-2025-8067,PoC已發布

漏洞概述安全研究人員在Linux環境中廣泛使用的磁盤管理組件UDisks守護進程中,發現了一個嚴重漏洞(編號CVE-2025-8067,CVSS評分8.5)。該漏洞已報告給紅帽產品安全團隊,并在UDisks更新版本中得到修復。技術細節該漏洞存在…

uniapp 開發上架 iOS App全流程

操作文檔網址:https://ask.dcloud.net.cn/article/152 操作學習視頻地址:uniapp打包上線微信小程序、安卓、IOS流程_嗶哩嗶哩_bilibili 第一步:注冊蘋果 iOS 個人開發者賬號 費用說明 ?個人開發者賬號?:適用于獨立開發者或小…

Sqlsugar補充自定義模板

DBFirst默認創建所有實體CreateClassFile()的第二個參數為生成實體類命名空間//.net6以下 db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\1", "Models"); //.net6以上 string加? db.DbFirst.IsCreateAttribute().StringNullable().CreateCl…

LeetCode 392.判斷子序列

給定字符串 s 和 t ,判斷 s 是否為 t 的子序列。 字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對位置形成的新字符串。(例如,"ace"是"abcde"的一個子序列&#x…

邏輯回歸:從原理到實戰的完整指南

在機器學習中,分類任務是最常見的應用場景之一。而邏輯回歸(Logistic Regression),盡管名字中有“回歸”,實際上是一種非常強大且廣泛應用的二分類模型。它簡單、高效、可解釋性強,是數據科學初學者入門分類…

鴻蒙搭配前端開發:應用端與WEB端交互

鴻蒙系統(HarmonyOS)是華為開發的一款面向全場景的分布式操作系統,其設計初衷是為了適應物聯網時代的需求,旨在構建一個統一的操作系統,支持多種設備的無縫協同工作。其分布式開發的一些主要優勢: 跨設備協…