目錄
#有一些概念是" >基本概念(Basic Concepts)#有一些概念是
節點(Node)" >節點(Node)
索引(Index)
類型(Type)
文件(document)
分片和副本(shards & replicas)
每個elasticsearch 分片是一個Lucene index ,一個Lucene 索引中可以有很多的文檔,截至LUCENE-5843 ,最多2,147,483,519(= Integer.MAX_VALUE - 128) 個文檔. 可以使用_cat/shards api監視分片大小。
總結
首頁 後端開發 C#.Net教程 Elasticsearch是什麼? Elasticsearch 能夠被用在什麼地方?

Elasticsearch是什麼? Elasticsearch 能夠被用在什麼地方?

Jun 23, 2017 pm 04:10 PM
elasticsearch 入門

  • Elasticsearch 版本:5.4

  • Elasticsearch快速入門第1篇:Elasticsearch入門

  • ##Elasticsearch快速入門第2篇:Elasticsearch與Kibana安裝

  • Elasticsearch快速入門第3篇:Elasticsearch索引與文件作業

  • ##Elasticsearch快速入門第4篇: Elasticsearch文件查詢
Elasticsearch

 是一個高擴充的開源全文搜尋和分析引擎。它可以快速地、近實時的存儲,搜尋和分析大規模的數據。一般用作底層引擎/技術,為具有複雜搜尋功能和要求的應用提供強有力的支撐。

Elasticsearch 

能夠被用在這些地方:

    假設有一個線上的商店網站,為了讓顧客搜尋到銷售的產品。在這種情況下,可以使用 
  1. Elasticsearch 

    來儲存你的整個產品目錄和庫存,並提供搜尋以及自動給他們一些建議。

  2. 假設想要收集日誌或交易數據,透過分析、挖掘來尋找趨勢,統計,總結或異常。在這種情況下,可以使用 
  3. LogStash

    Elasticsearch/Logstash/Kibana堆疊的一部分)去收集、匯總並解析你的數據,然後透過 LogStash把這些資料遞交給 Elasticsearch 。一旦 Elasticsearch 取得了數據,你就可以進行搜尋並且聚合你感興趣的資訊。

  4. 假設運行一個價格提醒平台,讓價格精明的客戶指定一個規則,如「我有興趣購買一個特定的電子小配件,如果下個月內,有賣家的價格低於$x,我想得到通知」。在這種情況下,你可以把賣家的價格遞交到 
  5. Elasticsearch 

    ,使用反向搜尋(過濾器),將價格變動與客戶查詢進行匹配,一旦發現匹配結果,則通知客戶。

  6. 假設有分析(商業智慧)需求,希望快速調查,分析,視覺化和在大量(考慮百萬或十億筆記錄)的數據中查找一個特設的問題。在這種情況下,你可以使用 
  7. Elasticsearch 

    儲存數據,然後使用 Kibana ( Elasticsearch 堆疊的一部分)建立自訂儀表板,以便視覺化對你重要的數據。另外,你可以使用 Elasticsearch 聚合功能,依靠資料執行複雜的商業智慧查詢。

  8. 對於本教程的其餘部分,會透過 
Elasticsearch 

的啟動和運行過程指導你初步認識它,並展示一些基本的操作,例如:索引,搜尋和修改資料。本教程的結束後,你將會對 Elasticsearch 是什麼以及它的工作原理有了較深的認識。希望你能受到啟發,既能使用它建立複雜的搜尋應用程式又能從你的數據中發掘有用的東西。

基本概念(Basic Concepts)#有一些概念是

Elasticsearch ##的核心從一開始就理解這些概念將大大有助於未來的學習。

近實時(

NRT)

#Elasticsearch 

是一個接近即時的搜尋平台。這意味著從將文件索引的時間到變得可搜尋的時間只有輕微的延遲(通常為1秒)。

叢集(

Cluster)叢集是一個或多個節點(伺服器)的集合,它們聯合起來保存所有的數據,並且可以在所有的節點上進行索引和搜尋操作。叢集由唯一的名稱標識,預設是"elasticsearch"。由於一個節點僅僅可以屬於一個集群,並根據集群名稱加入集群。所以該名字很重要。

不要在不同的環境中使用一樣的叢集名字,否則可能會導致加入錯誤的叢集。例如,你可以分別在開發,過渡,生產環境中使用群集名稱, 

logging-dev , logging-stage 和 logging-prod

 。

注意,只有一個節點的叢集是有效且完美的。也可以擁有多個獨立的集群,每個集群都有自己獨特的集群名稱。

節點(Node)

節點是一個單一的伺服器,是叢集的一部分,儲存數據,並參與叢集的索引和搜尋。和叢集一樣,節點也是透過唯一的名字去區分,預設名字是一個隨機的UUID(Universally Unique IDentifier),當伺服器啟動的時候就會設定到該節點。如果不想使用預設值,你也可以自訂節點的名稱。名稱對管理員來說十分重要,它可以幫助你區分出叢集中的各個伺服器和哪些節點相對應。

節點透過配置叢集的名稱,就可以加入指定的叢集。預設情況下,節點都加入一個叫  elasticsearch 的集群,這意味著如果你在網路中啟動了大量的節點並且假如他們都能互相通訊的話,那麼他們將會被自動的加入一個名字叫  elasticsearch 的集群。

索引(Index)

#索引是具有某種相似特徵的文件的集合。例如,客戶資料索引,產品目錄索引,以及訂單資料索引。索引由名稱(必須全部為小寫)標識,此名稱用於在對文件進行索引、搜尋、更新和刪除操作時使用。在單一叢集中,您可以根據需要定義任意數量的索引。

類型(Type)

一個索引可以定義一個或多個型別。類型是索引的邏輯類別/分割區,你怎麼理解都行。通常,為具有一組公共欄位的文件定義一種類型。例如,一個部落格平台,假如將所有資料儲存在單一索引中。在此索引中,可以定義使用者資料類型,部落格資料類型以及評論資料類型。

文件(document)

文件是可以被索引的基本單位。例如,用一個文件儲存某個客戶的數據,或儲存單一產品的數據,或儲存單一訂單的數據。文檔使用JSON表示。在索引/類型中可以儲存大量文件。值得注意的是,儘管文件本質上是存放在索引中,但實際上是被索引/分配到索引中的一個類型中。

分片和副本(shards & replicas)

一個索引可能儲存海量數據,有可能超過單一節點的硬碟容量。例如,某個索引儲存了10億個文檔,佔用1TB的硬碟空間,單一節點的硬碟有可能不足以儲存那麼大的資料量,就算可以儲存下,但是可能會降低伺服器處理搜尋請求的速度。

為了解決這個問題, elasticsearch 提供了分片功能,即將索引細分。建立索引時,可以簡單地定義所需的分片數。每個分片本身就具備索引的全部功能,可以存放在叢集中的任何一個節點。

分片很重要,主要原因有兩個:

  • 它允許您水平分割/縮放您的內容量

  • #它允許你並行地分發操作到多個節點的分片上,從而可以提升效能或吞吐量。

 碎片分發的機制,以及它的文件如何匯總回到搜尋請求中完全由Elasticsearch管理,並且對使用者來說是透明的。

在網路/雲端環境中,任何時候都可能發生故障,分片會非常有用,並強烈建議使用故障轉移機制,以防止分片/節點離線或消失。為此, elasticsearch 允許您將索引的分片複製一份或多份,也就是所謂的複製分片,或簡寫為副本。

副本很重要,主要原因有兩個:

  • 如果分片/節點發生故障,則可提供高可用性。因此,要注意,副本與其複製的原始/主分片不能分配在同一節點上。

  • 它允許您擴展搜尋量/吞吐量,因為可以對所有副本並行執行搜尋。

總而言之,每個索引可以分成多個分片。每個索引也可以複製零次(意味著沒有副本)或多次。一旦複製,每個索引將具有主分片(複製的原始分片)和副分片(主分片的副本)。可以在建立索引時根據索引定義碎片和副本的數量。建立索引後,您可以隨時動態變更副本數,但不能變更事後的分片數。

預設情況下,每個索引都會被分配5個主分片和1一個複製分片,這表示如果你的叢集中有兩個節點,你的索引將會有5個主分片和5個複製分片,總共有10個分片。

每個elasticsearch 分片是一個Lucene index ,一個Lucene 索引中可以有很多的文檔,截至LUCENE-5843 ,最多2,147,483,519(= Integer.MAX_VALUE - 128) 個文檔. 可以使用_cat/shards api監視分片大小。

總結

1、為什麼不用關係型資料庫做搜尋?因為用資料庫來實現搜索,效能會很差,不能進行分詞搜尋。

2、什麼是全文檢索、倒排索引和Lucene?前人已經總結過了,請參考【手把手教你全文檢索】Apache Lucene初探

3、Elasticsearch的特點

  • 可以分佈式集群,對海量數據進行近實時的處理;

  • 對使用者而言,開箱即用,非常簡單。如果資料量不大,操作不會太複雜;

  • 具有關係型資料庫沒有的功能,例如全文檢索,同義詞處理,相關度排名,複雜資料分析,海量資料的近實時處理;

  • 基於lucene,隱藏了複雜性,提供簡單易用的restful api介面、java api介面

4、 elasticsearch的核心概念

  • Cluster:叢集包含多個節點,每個節點屬於哪個叢集是透過設定來決定的(預設是elasticsearch)

  • Node:叢集中的一個節點,節點預設會自動加入名叫"elasticsearch"的叢集。一個elasticsearch服務就是一個節點,例如一台機器啟動兩個es服務,就有兩個節點。

  • Index:索引,相當於mysql的資料庫,包含一堆有相似結構的文件資料。

  • Type:類型,相當於mysql的表,index中的一個邏輯資料分類。

  • document:文檔,相當於mysql表中的一行記錄,是es中的最小資料單元。

  • shard:分片,單一機器無法儲存大量數據,es可以將一個索引中的資料切分為多個shard,分佈在多台伺服器上儲存。

  • replica:副本,為了防止宕機,shard遺失,所以最小的高可用配置,是2台伺服器。

#

以上是Elasticsearch是什麼? Elasticsearch 能夠被用在什麼地方?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

值得你花時間看的擴散模型教程,來自普渡大學 值得你花時間看的擴散模型教程,來自普渡大學 Apr 07, 2024 am 09:01 AM

Diffusion不僅可以更好地模仿,而且可以進行「創作」。擴散模型(DiffusionModel)是一種影像生成模型。與先前AI領域大名鼎鼎的GAN、VAE等演算法,擴散模型另闢蹊徑,其主要想法是先對影像增加噪聲,再逐步去噪的過程。其中如何去噪還原原影像是演算法的核心部分。最終演算法能夠從一張隨機的雜訊影像中產生影像。近年來,生成式AI的驚人成長將文字轉換為圖像生成、視訊生成等領域的許多令人興奮的應用提供了支援。這些生成工具背後的基本原理是擴散的概念,這是一種特殊的取樣機制,克服了先前的方法中被

一鍵生成PPT! Kimi :讓「PPT民工」先浪起來 一鍵生成PPT! Kimi :讓「PPT民工」先浪起來 Aug 01, 2024 pm 03:28 PM

Kimi:一句話,十幾秒鐘,一份PPT就新鮮出爐了。 PPT這玩意兒,可太招人煩了!開個碰頭會,要有PPT;寫個週報,要做PPT;拉個投資,要展示PPT;就連控訴出軌,都得發個PPT。大學比較像是學了個PPT專業,上課看PPT,下課做PPT。或許,37年前丹尼斯・奧斯汀發明PPT時也沒想到,有一天PPT竟然如此氾濫成災。嗎嘍們做PPT的苦逼經歷,說起來都是淚。 「一份二十多頁的PPT花了三個月,改了幾十遍,看到PPT都想吐」;「最巔峰的時候,一天做了五個PPT,連呼吸都是PPT」;「臨時開個會,都要做個

CVPR 2024全部獎項公佈!近萬人線下參會,Google華人研究員獲最佳論文獎 CVPR 2024全部獎項公佈!近萬人線下參會,Google華人研究員獲最佳論文獎 Jun 20, 2024 pm 05:43 PM

北京時間6月20日凌晨,在西雅圖舉辦的國際電腦視覺頂會CVPR2024正式公佈了最佳論文等獎項。今年共有10篇論文獲獎,其中2篇最佳論文,2篇最佳學生論文,另外還有2篇最佳論文提名和4篇最佳學生論文提名。電腦視覺(CV)領域的頂級會議是CVPR,每年都會吸引大量研究機構和高校參會。根據統計,今年共提交了11532份論文,2719篇被接收,錄取率為23.6%。根據佐治亞理工學院對CVPR2024的數據統計分析,從研究主題來看,論文數量最多的是圖像和視頻合成與生成(Imageandvideosyn

PyCharm社群版安裝指南:快速掌握全部步驟 PyCharm社群版安裝指南:快速掌握全部步驟 Jan 27, 2024 am 09:10 AM

快速入門PyCharm社群版:詳細安裝教學全解析導言:PyCharm是一個功能強大的Python整合開發環境(IDE),它提供了一套全面的工具,可以幫助開發人員更有效率地編寫Python程式碼。本文將詳細介紹如何安裝PyCharm社群版,並提供具體的程式碼範例,幫助初學者快速入門。第一步:下載和安裝PyCharm社群版要使用PyCharm,首先需要從其官方網站上下

從裸機到700億參數大模型,這裡有一個教程,還有現成可用的腳本 從裸機到700億參數大模型,這裡有一個教程,還有現成可用的腳本 Jul 24, 2024 pm 08:13 PM

我們知道LLM是在大規模電腦叢集上使用海量資料訓練得到的,本站曾介紹過不少用於輔助和改進LLM訓練流程的方法和技術。而今天,我們要分享的是一篇深入技術底層的文章,介紹如何將一堆連作業系統也沒有的「裸機」變成用來訓練LLM的電腦叢集。這篇文章來自於AI新創公司Imbue,該公司致力於透過理解機器的思維方式來實現通用智慧。當然,將一堆連作業系統也沒有的「裸機」變成用於訓練LLM的電腦叢集並不是一個輕鬆的過程,充滿了探索和試錯,但Imbue最終成功訓練了一個700億參數的LLM,並在此過程中積累

AI在用 | AI製作獨居女孩生活Vlog,3天狂攬萬點讚量 AI在用 | AI製作獨居女孩生活Vlog,3天狂攬萬點讚量 Aug 07, 2024 pm 10:53 PM

機器之能報道編輯:楊文以大模型、AIGC為代表的人工智慧浪潮已經在悄悄改變我們生活及工作方式,但絕大部分人依然不知道該如何使用。因此,我們推出了「AI在用」專欄,透過直覺、有趣且簡潔的人工智慧使用案例,來具體介紹AI使用方法,並激發大家思考。我們也歡迎讀者投稿親自實踐的創新用例。影片連結:https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ最近,獨居女孩的生活Vlog在小紅書上走紅。一個插畫風格的動畫,再配上幾句治癒系文案,短短幾天就能輕鬆狂攬上

入門學習C語言的五款程式設計軟體 入門學習C語言的五款程式設計軟體 Feb 19, 2024 pm 04:51 PM

C語言作為一門廣泛應用的程式語言,對於想從事電腦程式設計的人來說是必學的基礎語言之一。然而,對於初學者來說,學習新的程式語言可能會有些困難,尤其是缺乏相關的學習工具和教材。在本文中,我將介紹五款幫助初學者入門C語言的程式設計軟體,幫助你快速上手。第一款程式軟體是Code::Blocks。 Code::Blocks是一個免費的開源整合開發環境(IDE),適用於

技術入門者必看:C語言和Python難易度解析 技術入門者必看:C語言和Python難易度解析 Mar 22, 2024 am 10:21 AM

標題:技術入門者必看:C語言和Python難易度解析,需要具體程式碼範例在當今數位化時代,程式設計技術已成為一項越來越重要的能力。無論是想要從事軟體開發、數據分析、人工智慧等領域,還是僅僅出於興趣學習編程,選擇一門合適的程式語言是第一步。而在眾多程式語言中,C語言和Python作為兩種廣泛應用的程式語言,各有其特色。本文將對C語言和Python的難易度進行解析

See all articles