Elasticsearch 指南 [7.0]

Getting started

Elasticsearch 是一個高度伸縮的開源全文搜索與分析引擎。它可以使你快速的近乎於準實時的存儲、查詢和分析超大數據集。它通常被用來當做構建複雜查詢特性和需求強大應用的基礎引擎/技術。
Elasticsearch 可以被用在如下幾個場景:
1. 當你運營一個提供客戶檢索商品的在線電子商城的時候,可以使用ES來存儲整個商品目錄和庫存,並且爲客戶提供檢索和自動推薦功能。
2. 收集交易數據,存儲並做趨勢、統計、概要或異常分析。這種情況下,可以使用Logstash來收集、聚合和解析數據,並且存儲到 Elasticsearch。一單數據進入 Elasticsearch,你可以檢索,聚合來掌握你感興趣的信息。 
3. 價格預警平臺,爲價格敏感客戶提供匹配其需求(主要是價格方面)的商品。 
4. 在報表分析/BI領域,可以使用ES的聚合功能完成針對大數據量的複雜分析。

Basic Concepts

如有是Elasticsearch的幾個核心概念。開篇理解這幾個概念對後面的學習過程非常有幫助。

### Near Realtime (NRT)
Elasticsearch 是一個準實時搜索平臺。這句話的意思是,從創建索引到可以被查詢之間的延時很短(正常情況下一秒的延時)。

### Cluster
一個Elasticsearch集羣是一到多個ES 節點的集合,保存了所有數據和提供了跨集羣內所有節點的聯合索引和搜索能力。一個集羣被命名爲唯一的名字(默認爲 elasticsearch)。集羣名稱非常重要,因爲當一個節點通過集羣的名字加入集羣時,一個節點只能是一個集羣的一部分。
確保在不同的環境使用不同的集羣名稱,否則會導致節點添加到錯誤的集羣。比如你可以用logging-dev\logging-state\logging-prod來區分不同環境集羣。
注意,只有一個節點的集羣是有效且非常好的。此外,您還可以擁有多個獨立的集羣,每個集羣都有自己獨特的集羣名稱。
### Node
 一個節點是作爲集羣一部分的單個服務器,存儲數據並參與集羣的索引和搜索。與集羣一樣,節點由一個名稱標識,默認情況下,該名稱是在啓動時分配給節點的隨機通用唯一標識符(UUID)。如果不希望使用默認值,則可以定義所需的任何節點名稱。節點名稱對於管理目的很重要,因爲您希望確定網絡中的哪些服務器對應於 Elasticsearch 集羣中的哪些節點。
一個節點可以被設置添加到指定名稱的集羣。默認情況下,每個節點會被設置加入到名稱爲elasticsearch 的集羣,意味着,如果在你的網絡中啓動一些節點(假設這些節點可以發現彼此),他們會自動形成並加入名稱爲elasticsearch的集羣。
在一個急羣衆,你可以擁有你想要的節點數。此外,如果在你的網絡中沒有任何Elasticsearch 節點,啓動一個node會組成一個名稱爲sleasticsearch的單節點集羣。
### Index
一個索引是一個擁有一些相似特徵的文檔的集合。比如,你可以擁有一個客戶數據的索引,一個商品目錄索引,甚至一個訂單數據索引。一個索引同城被一個名字(所有字母必須小寫)標示並且當針對這個索引的文檔執行索引、搜索、更新和刪除操作的時候這個名字被用來指向索引。
### Type
一個type通常是一個索引的一個邏輯分類/分區,允許在 一個索引下存儲不同類型的文檔。比如用戶類型,博客類型。現在已經不能在一個索引下創建多個類型,並且類型概念已經在後續版本刪除。見[詳細](https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html)
### Document
一個文檔是可以被索引的基本信息單元。比如,你可以爲一個客戶創建一個文檔,爲一個商品創建一個文檔。文檔可以用json表示。在一個索引李,你可以存儲足夠你想想的文檔數。
分片 & 複本
……未完待續
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章