天天看點

Elasticsearch

Elasticsearch 是一個分布式的基于 RESTful 接口的搜尋和分析引擎,它能夠解決越來越多的使用場景。作為 Elastic Stack 的核心,它集中存儲資料,可以發現預期及之外的結果。

Elasticsearch 是一個分布式、RESTful 風格的搜尋和資料分析引擎,能夠解決不斷湧現出的各種用例。作為 Elastic Stack 的核心,它集中存儲您的資料,幫助您發現意料之中以及意料之外的情況。

​<code>​查詢​</code>​ 保持好奇心。從資料中探尋各種問題的答案。

通過 Elasticsearch,您能夠執行及合并多種類型的搜尋(結構化資料、非結構化資料、地理位置、名額),搜尋方式随心而變。先從一個簡單的問題出發,試試看能夠從中發現些什麼。

​<code>​分析​</code>​ 大處着眼,全局在握。

找到與查詢最比對的十個文檔是一回事。但如果面對的是十億行日志,又該如何解讀呢?Elasticsearch 聚合讓您能夠從大處着眼,探索資料的趨勢和模式。

​<code>​速度​</code>​ Elasticsearch 很快。 快到不可思議。

如果您能夠立即獲得答案,您與資料的關系就會發生變化。這樣您就有條件進行疊代并涵蓋更大的範圍。

但是要達到這樣的速度并非易事。我們通過有限狀态轉換器實作了用于全文檢索的反向索引,實作了用于存儲數值資料和地理位置資料的 BKD 樹,以及用于分析的列存儲。

而且由于每個資料都被編入了索引,是以您再也不用因為某些資料沒有索引而煩心。您可以用快到令人驚歎的速度使用和通路您的所有資料。

​<code>​可擴充性​</code>​ 可以在筆記本電腦上運作。 也可以在承載了 PB 級資料的成百上千台伺服器上運作。

原型環境和生産環境可無縫切換;無論 Elasticsearch 是在一個節點上運作,還是在一個包含 300 個節點的叢集上運作,您都能夠以相同的方式與 Elasticsearch 進行通信。

它能夠水準擴充,每秒鐘可處理海量事件,同時能夠自動管理索引和查詢在叢集中的分布方式,以實作極其流暢的操作。

​<code>​彈性​</code>​ 我們在您高飛的時候保駕護航。

硬體故障。網絡分割。Elasticsearch 為您檢測這些故障并確定您的叢集(和資料)的安全性和可用性。通過跨叢集複制功能,輔助叢集可以作為熱備份随時投入使用。

Elasticsearch 運作在一個分布式的環境中,從設計之初就考慮到了這一點,目的隻有一個,讓您永遠高枕無憂。

​<code>​靈活性​</code>​ 具備多個案例場景?一個全有。

數字、文本、地理位置、結構化資料、非結構化資料。歡迎使用所有資料類型。

​​應用搜尋​​、​​安全分析​​、​​名額​​或​​日志分析​​隻是全球衆多公司利用 Elasticsearch 解決各種挑戰的冰山一角。

​<code>​操作的樂趣​</code>​ 享受更多成功的時刻,告别垂頭喪氣的失落

簡單的事情就該簡單做。我們確定 Elasticsearch 在任何規模下都能夠易于操作,而無需在功能和性能方面做出犧牲。

​<code>​用戶端庫​</code>​ 使用您自己的程式設計語言與 Elasticsearch 進行互動

Elasticsearch 使用的是标準的 RESTful 風格的 API 和 JSON。此外,我們還建構和維護了很多其他語言的用戶端,例如 ​​Java、Python、.NET、SQL 和 PHP​​。與此同時,我們的​​社群也貢獻了很多用戶端​​。這些用戶端使用起來簡單自然,而且就像 Elasticsearch 一樣,不會對您的使用方式進行限制。

​<code>​盡享強大功能​</code>​ 延展 Elasticsearch

為您的叢集添加使用者名和密碼,監控 Elasticsearch 的性能表現,通過運作 Machine Learning 任務來發現異常等等,這些特性盡在 ​​Elastic Stack 内置的多項功能​​。

通過 ​​Security​​、​​Monitoring​​、​​Alerting​​、​​Reporting​​、​​Graph 關聯分析​​和 ​​Machine Learning​​ 等功能,獲得更優的使用體驗。

​<code>​HADOOP 和 SPARK​</code>​ Elasticsearch 加 Hadoop

Hadoop 中有大量資料?您可以使用 ​​Elasticsearch-Hadoop (ES-Hadoop)​​連接配接器,利用 Elasticsearch 的實時搜尋和分析功能處理您的大資料。這是兩大領域最大優勢的融合。

叢集:是由一個或者多個ES節點組成的集合。 每一個叢集都有一個唯一的名字,預設是ElasticSearch。每個節點也都有唯一名字。

Elasticsearch

叢集和節點

索引: 含有相同屬性的文檔集合,比如産品的索引,使用者的索引等

類型:索引可以定義一個或多個類型,文檔必須屬于一個類型(一般會定義有相同字段的文檔為一個類型)

文檔:文檔是可以被所有的基本資料機關,是整個ES中最小的存儲機關

==索引在Es中是通過一個名字來識别的,而且它的名字必須是 英文字母小寫,且不能有中劃線。==

都是通過這個名字來進行增删查改。

<col>

ES

資料庫

索引

執行個體database

類型

表-table

文檔

一行記錄

舉例:圖書索引 ---&gt; 文學類型、技能類型...----&gt;每一本書可以看成一個文檔

分片: 每個索引都有多個分片,每個分片是一個Lucene索引

​ 分片的好處:假如資料量很大的話,就會造成硬碟的壓力很大,同時搜尋速度也會出現瓶頸,将索引分成多個分片,進而分攤壓力提供效率。

備份:拷貝一份分片就完成了分片的備份,提供可用性

ES預設在建立索引的時候,會建立5個分片,1個備份。這個預設的數量是可以修改的。

​ number_of_shards: 每個索引的主分片數,預設值是 5 。這個配置在索引建立後不能修改。

​ number_of_replicas:每個主分片的副本數,預設值是 1 。對于活動的索引庫,這個配置可以随時修改。

==注意==:索引的分片隻能在建立索引的時候指定,而不能再後期進行修改。備份是可以動态修改的。

https://www.meiwen.com.cn/subject/mqhhiftx.html

 ​zhuanlan.zhihu.com/p/58966889

僅為記錄學習之用,感謝分享!

繼續閱讀