亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch有什么用

發布時間:2021-03-12 13:43:34 來源:億速云 閱讀:341 作者:小新 欄目:編程語言

這篇文章主要介紹Elasticsearch有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

  • Elasticsearch 版本:5.4

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

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

  • Elasticsearch快速入門 第3篇:Elasticsearch索引和文檔操作

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

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

Elasticsearch 能夠被用在這些地方:

  1. 假設有一個在線的商店網站,為了讓客戶搜索到銷售的產品。在這種情況下,可以使用 Elasticsearch 來存儲你的整個產品目錄和庫存,并提供搜索以及自動給他們一些建議。

  2. 假設想要收集日志或者交易數據,通過分析、挖掘來尋找趨勢,統計,總結或異常。在這種情況下,可以使用 LogStashElasticsearch/Logstash/Kibana棧的一部分)去收集、匯總并解析你的數據,然后通過 LogStash 把這些數據遞交給 Elasticsearch 。一旦 Elasticsearch 取得了數據,你就可以進行搜索并且聚合你感興趣的信息。

  3. 假設運行一個價格提醒平臺,讓價格精明的客戶指定一個規則,如“我有興趣購買一個特定的電子小配件,如果下個月內,有賣家的價格低于$x,我想得到通知”。在這種情況下,你可以把賣家的價格遞交到 Elasticsearch ,使用反向搜索(過濾器),將價格變動與客戶查詢進行匹配,一旦發現匹配結果,則通知客戶。

  4. 假設有分析(商業智能)需求,希望快速調查,分析,可視化和在大量(考慮百萬或十億條記錄)的數據中查找一個特設的問題。在這種情況下,你可以使用 Elasticsearch 儲存數據,然后使用  KibanaElasticsearch 棧的一部分)構建自定義儀表板,以便可視化對你重要的數據。另外,你可以使用 Elasticsearch 聚合功能,依靠數據執行復雜的商業智能查詢。

對于本教程的其余部分,會通過 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有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家港市| 营山县| 黎城县| 济源市| 青神县| 敖汉旗| 尼勒克县| 隆德县| 湘潭市| 普陀区| 南宫市| 延安市| 阿坝县| 枣强县| 营山县| 邮箱| 定兴县| 萨嘎县| 桃园市| 九寨沟县| 南澳县| 枣阳市| 沅江市| 甘洛县| 马公市| 海原县| 新竹县| 临汾市| 保德县| 南投市| 共和县| 个旧市| 桂平市| 镇赉县| 金坛市| 长武县| 方城县| 乌鲁木齐县| 通化县| 小金县| 务川|