Elasticsearch 簡介:它是什麼以及這個搜索引擎是如何工作的

無論您是從事電子商務還是 模型風險管理服務,您可能是每天都可以從使用 Elasticsearch 中受益的數以萬計的企業中的一員。 當您閱讀“搜索引擎”一詞時,您會想到 Google,但 Elasticsearch 適用於需要快速搜索大量自己數據的企業。

在本文中,我們將介紹 Elasticsearch 是什麼、它是如何工作的,以及您需要了解的所有其他內容,以使其適用於您的業務。

什麼是彈性搜索?

Elasticsearch 是最流行的企業搜索引擎,但許多人從未聽說過它。 Elasticsearch 允許您實時存儲、查詢和分析龐大的數據集。 它通常用於復雜的查詢和高性能應用程序,如 eBay 和 Netflix。

ELK堆棧
麋鹿堆棧。 (資源: logz.io)

Elasticsearch 是當今最流行的數據庫系統之一,主要用於搜索和日誌分析。 這是的一部分 麋鹿棧 – Elasticsearch、Logstash、Kibana – 這是當今最流行的日誌分析平台。 這是一套免費和開放的數據採集、豐富、存儲、分析和可視化工具。

ELK 堆棧對於抓取網絡和梳理內部日誌和數據一樣有用。 ObjectRocket 的 Twitter 集成使用 Elasticsearch 從您選擇觀看的主題標籤中提取推文。 這使您能夠自動提取大量數據,並為大規模複雜搜索做好準備。 ELK 堆棧以其簡單的 REST API、分佈式特性、速度和可擴展性而聞名。

ELK 堆棧的其他部分是 Logstash 和 Kibana。 Logstash 是一種開源工具,可讓您從多個來源獲取數據,對其進行更改,並將其轉發到任何給定流程的下一步。 借助插件和預先構建的過濾器,它允許用戶從幾乎任何地方攝取數據。

Kibana 是一個數據可視化工具,提供易於使用的交互式圖表和預建過濾器。

隨著世界上更多的 IT 基礎設施 移動到雲端,ELK 堆棧提供了一種經濟高效的日誌分析解決方案,使您的開發人員和 DevOps 能夠獲得有關係統故障和應用程序性能的有用見解。 正如我們將看到的,公司還能夠使用它來增強客戶服務和欺詐檢測等功能。

Elasticsearch 是如何工作的

ELK棧教程
ELK 堆棧教程。 (資源: HowToDoInJava)

將數據添加到 Elasticsearch 稱為“索引”。 如果您正在運行電子商務操作,則可以設置自動管道,將數據實時發送到 Elasticsearch 以獲取索引。 Elasticsearch 是一種 API,這意味著您可以通過多種方式使用 POST 或 PUT 方法將數據輸入其中。

只要您設置了 API 密鑰,就可以將數據從任何其他可以使用 JSON 的應用程序添加到 Elasticsearch。 所有數據都以 JSON 對象的形式提供,但您無需手動將其壓入該形狀。 Elasticsearch 不需要提前定義數據結構。

有很多東西需要吸收,所以讓我們用一些有用的術語來分解 Elasticsearch。

文件

文檔是 Elasticsearch 中最簡單的數據類型,以 JSON 表示。 文檔類似於數據庫中的一行。 Elasticsearch 中的文檔可以是任何以 JSON 編碼的結構化數據,而不僅僅是文本。

Index 指數

具有可比質量的文檔集合是一個“索引”。 在 Elasticsearch 中,索引是您可以進行搜索查詢的最廣泛的類別。 索引中的任何文檔在邏輯上都是相關的。

在電子商務網站的上下文中,您可以有一個“客戶”索引,一個“SKU”索引,一個“購買”索引。 索引有一個名稱,用於在對其包含的文檔執行操作時引用它。

倒排索引

在 Elasticsearch 中,索引實際上是一種“倒排索引”,是所有搜索引擎都使用的機制。 它是一種數據結構,用於存儲鍵值對及其在文檔或一系列文檔中的位置。 倒排索引不是直接存儲文本字符串,而是將每個文檔分成單獨的搜索短語(例如每個單詞)。 然後它將每個搜索詞映射到它出現的文檔。

如果“Elasticsearch”一詞在本文中出現 20 次,則索引中的一行將具有鍵值對“Elasticsearch:20”。 這種事情是讓谷歌決定哪些頁面與您的搜索最相關的原因。 這就是 Elasticsearch 能夠將文檔分解為更細粒度的數據的方式。

集群是一個或多個連接節點的集合。 任何給定的工作都在不同的“節點”之間劃分,允許搜索比在一台計算機上更快地發生。 在 Elasticsearch 集群中的所有節點之間分配任務、搜索和索引是它強大的原因。

節點

作為集群一部分的單個服務器稱為節點。 節點是存儲數據並幫助聚集索引和搜索的計算機。 Elasticsearch 節點可以通過多種方式設置。

有一個“主節點”,它控制集群的其餘部分。 “數據節點”,存儲數據並運行搜索等操作。 還有一個“客戶端節點”,它將請求引導到主節點和數據節點。

碎片

Elasticsearch 允許您將索引拆分為“碎片”,這些碎片是索引的較小部分。 每個分片都是一個功能齊全且自包含的“索引”,可以託管在任何集群節點上。

副本

Elasticsearch 允許您創建“副本分片”或簡稱為“副本”,它們是索引分片的副本。 主分片被分配給索引中的每個文檔。 副本提供數據的冗余副本以防止硬件故障,這在 Google 和 Facebook 等大規模運營中成為一個問題。

Elasticsearch 的用途是什麼

Elasticsearch 和 ELK 堆棧在尖端人工智能研究中與在大公司的日常運營中一樣受歡迎。

例如,Netflix 使用 ELK Stack 來監控和分析客戶服務運營。 他們能夠自動分類和自動查詢大量數據。 他們還利用了 Elasticsearch 的自動分片、複製和大型插件生態系統。

沃爾瑪使用 ELK 深入了解客戶習慣並跟踪商店績效。 在特殊情況下,它也被用於打擊欺詐。 通過接管 4 億條元數據記錄 從交易中,沃爾瑪能夠利用這些知識實時識別欺詐行為,包括 IP 地址、位置和其他系統流量等信息。

針對老年人的禮品卡計劃一直是一個特殊的問題,沃爾瑪通過在這些交易發生時捕捉到這些交易,為客戶節省了數百萬美元。

Adobe 使用 Elasticstack 來管理大型應用程序,這些應用程序必須搜索數百萬個項目,例如 Adob​​e Stock 中的圖像。 Adobe 的 Elasticsearch 插件與他們自己的圖像識別 AI 一起工作,包括“相似度”插件和“搜索排名”插件。

這為圖像識別提供了動力,使用戶可以找到與其輸入相似的照片。 (想想 Google 的反向圖像搜索。)Elasticsearch 還使他們能夠識別人臉、識別對象並自動標記圖像以供用戶搜索。

Elasticsearch 已經為機器學習做好了準備。 攝取數據後,ELK 堆棧會對其進行分析,以確保您擁有在日誌中運行搜索所需的元數據。 跨越幾個 神經網絡架構的類型與卷積神經網絡一樣,Elasticsearch 能夠快速對您的數據進行機器學習查詢。 所有這些都是實時發生的,因為圖像被上傳到平台。

隨著卷積神經網絡的價值越來越明顯,企業利用他們​​已經收集到的運營數據變得更加緊迫。 什麼是卷積神經網絡? 這是一種訓練 AI 的方式,涉及兩個 AI:訓練者和受訓者。

當受訓者對前面的數據進行猜測時,例如“這兩張人臉圖像是同一個人的”,訓練者給出的是或否的答案,這是人類創造者給出的答案。 如果答案是錯誤的,一些“神經元”會被隨機改變並再次運行測試。 這可能會在數小時內每秒發生數千次,直到 AI 從提供的數據中可靠地推斷出正確答案。

Elasticsearch 使您能夠對數據實施 MLOps 最佳實踐,例如分類、回歸和異常值檢測。 Elasticsearch 的推理攝取處理器會在您的數據進入後立即將您的機器學習模型應用於您的數據。 

為什麼使用 Elasticsearch

Elasticsearch 不僅僅是一個搜索引擎。 使用插件和能力 使用機器學習模型 這讓谷歌如此強大,它允許企業構建複雜的數據操作,利用他們每天生成的客戶數據。

另請閱讀

作者照片

蒲寒琳的文章