本文翻譯自:www.elastic.co/guide/en/el…html
前段時間在作ElasticSearch數據分析相關的工做,一直想翻譯ES的官方文檔,至關於ES的入門文檔吧。服務器
Elasticsearch是一個高度可擴展的開源全文搜索和分析引擎。它容許用戶快速,實時地存儲,搜索和分析大量數據。ES一般用做爲具備複雜的搜索功能和要求的應用程序提供的底層引擎/技術。網絡
官方提供了幾個示例用例:elasticsearch
官方文檔的其他部分將引導用戶完成ES的運行過程,並在其中進行查看,並執行索引,搜索和修改數據等基本操做。而最後,用戶將瞭解它的工做原理以及和對此的啓發,以瞭解如何使用它來構建複雜的搜索應用程序或從數據中挖掘智能。ide
有幾個概念是Elasticsearch的核心。從一開始就理解這些概念將大大有助於緩解學習過程。工具
Elasticsearch是一個接近實時的搜索平臺。這意味着從你索引一個文檔到該文檔可搜索的時間稍微延遲(一般爲1秒)。性能
集羣是一個或多個節點(服務器)的集合,它們共同保存整個數據,並在全部節點之間提供聯合的索引和搜索功能。集羣由惟一的名稱標識,默認狀況下是「elasticsearch」。此名稱很重要,由於若是節點設置爲經過其名稱加入集羣,則節點只能做爲集羣的一部分。確保不要在不一樣環境中重複使用相同的集羣名稱,不然可能會致使節點加入錯誤的集羣。例如,你能夠對開發,分段和生產集羣使用logging-dev,logging-stage和logging-prod。請注意,擁有隻有一個節點的集羣是有效和完美的。此外,你還能夠擁有多個獨立的羣集,每一個羣集都有本身獨特的羣集名稱。學習
節點是做爲集羣一部分的單個服務器,存儲數據,並參與集羣的索引和搜索功能。就像一個集羣同樣,一個節點被一個名稱標識,默認狀況下是一個隨機的通用惟一標識符(UUID),它在啓動時分配給節點。若是你不想要默認值,你能夠定義所需的任何節點名稱。此名稱對於管理目的很重要,你但願肯定網絡中的哪些服務器對應於Elasticsearch集羣中的哪些節點。能夠將節點配置爲按集羣名稱加入特定集羣。ui
默認狀況下,每一個節點都設置爲加入名爲elasticsearch的羣集,這意味着若是你在網絡上啓動了多個節點,而且假設它們能夠相互發現,則它們將自動造成並加入名爲elasticsearch的單個羣集。翻譯
在單個集羣中,你能夠擁有不少你所需所需的節點數。此外,若是沒有其餘彈性搜索節點運行在你的網絡上,啓動單個節點將默認造成名爲elasticsearch的新的單節點羣集。
索引是具備某種類似特徵的文檔的集合。例如,你能夠擁有客戶數據的索引,產品目錄的一個索引,以及訂單數據的另外一個索引。索引由名稱(必須所有爲小寫)標識,該名稱用於在針對其中的文檔執行索引,搜索,更新和刪除操做時引用索引。
在單個集羣中,你能夠根據須要定義任意多的索引。
在索引中,你能夠定義一個或多個類型。類型是索引的邏輯類別/分區,其語義徹底取決於你。一般,爲具備一組公共字段的文檔定義了一種類型。例如,假設你運行一個博客平臺,並將全部數據存儲在單個索引中。在此索引中,你能夠定義用戶數據的類型,博客數據的另外一種類型以及註釋數據的另外一種類型。
文檔是能夠索引的基本信息單元。例如,你能夠擁有單個客戶的文檔,單個產品的另外一個文檔,以及單個訂單的另外一個文檔。文檔以JSON表示,這是一種無處不在的互聯網數據交換格式。在索引/類型中,你能夠存儲儘量多的文檔。請注意,雖然文檔物理上位於索引中,但實際上文檔實際上必須被索引/分配給索引中的類型。
索引可能潛在地存儲可能超過單個節點的硬件限制的大量數據。例如,佔用1TB磁盤空間的10億個文檔的單個索引可能不適合單個節點的磁盤,或者可能太慢,沒法單獨從單個節點提供搜索請求。
爲了解決這個問題,Elasticsearch提供了將索引細分爲多個稱爲碎片的片斷的功能。建立索引時,你能夠簡單地定義所需的分片數。每一個分片自己就是一個全功能且獨立的「索引」,能夠在集羣中的任何節點上託管。
分片是重要的兩個主要緣由:
如何將其文檔聚合回搜索請求徹底由Elasticsearch管理,對用戶來講對你是透明的。
在能夠隨時預期故障的網絡/雲環境中,很是有用,並強烈建議使用故障切換機制,以防止分片/節點由於某種緣由脫機或消失。 爲此,Elasticsearch容許你將索引的碎片的一個或多個副本複製到所謂的複製分片,或簡寫爲複本。
副本是重要的兩個主要緣由:
總而言之,每一個索引能夠分紅多個分片。 索引也能夠被複製爲零(意味着沒有副本)或更屢次。 一旦複製,每一個索引將有 主碎片(複製的原始碎片)和副碎片(主碎片的副本)。 能夠在建立索引時爲每一個索引定義碎片和副本的數量。 建立索引後,你能夠隨時動態更改副本數,但不能更改過後的分片數。
默認狀況下,Elasticsearch中的每一個索引都分配了5個主分片和1個副本,這意味着若是你的集羣中至少有兩個節點,則索引將具備5個主分片和5個複本分片(1個完整副本),總共 每一個指數10個碎片
注意:每一個彈性搜索碎片都是Lucene索引。 在一個Lucene索引中能夠有最多的文檔數量。 從LUCENE-5843起,限制爲2,147,483,519(= Integer.MAX_VALUE - 128)文檔。 你可使用_cat / shards API監視分片大小。