搜索引擎 ElasticSearch 之 步步为营2 【基础概念】
?
在正式學習?ElasticSearch?之前,首先看一下?ElasticSearch 中的基本概念。
這些概念將在以后的章節中出現多次,所以花15分鐘理解一下是非常值得的。
英文好的同學,請直接移步官網:(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_basic_concepts.html)
?
near realtime(nrt) :
ElasticSearch 是一款“接近實時(nrt)”的搜索平臺,為什么說“接近實時”,因為?ElasticSearch 可以在為一個“文檔(document)”建立“索引(index)”后,非常短的時間內(這個時間通常在1秒之內)提供搜索支持。
?
cluster:
“集群(cluster)”是由一個或多個“節點”組合,負責管理你的全部數據,并聯合提供建立“索引(index)”和“搜索”服務。
每個“集群”都有一個唯一標識,默認為"elasticsearch"。這是一個非常重要的標識,因為一個“節點(node)”只可以屬于一個“集群(cluster)”。
??
node :
“節點(node)”是“集群”中的一臺單獨搜索服務器。負責存儲數據,參與"集群“中建立索引和搜索任務。
與“集群”類似,每個“節點(node)”都有一個唯一標識,默認是隨機的人名(英文名字)。
通過配置 /config/elasticsearch.yml 文件中的?cluster.name 項,我們可以設置這個“節點(node)”屬于哪一個“集群(cluster)”。
?
index:
“索引(index)”是“文檔(document)”的集合。一個索引中的“文檔(document)”應該相似的特征。
例如,你可以為“用戶信息”創建一個“索引(index)”,為“某個產品類別”創建另一個“索引”,當然,也可以為“訂單信息”創建一個“索引”......
一個“索引(index)”應當有一個唯一的“名字”(必須全部為小寫字母),這個“名字”可用于建立索引,搜索、更新和刪除索引中的“文檔”。
在一個“節點(node)”中,你可以定義任意數量的“索引(index)”。
?
type:
“類型(type)”是“索引(index)”中完全由你定義的一個邏輯上的類別/部分。
每個“索引(index)”都可以包含一個或多個“類型(type)”。例如,你準備構建一個博客系統,并使用一個“索引”存儲所有數據,在這個“索引”中,可以為“用戶信息”定義一個“類型(type)”,為“博客數據”定義另一個“類型(type)”,為“評論數據”定義第三個“類型”......
?
document:
“文檔(document)”是可被建索引的一個基本信息單元。通常采用JSON格式。
需要注意的是,每個文檔必須被指定對應的“索引(index)”和“類型(type)”。
?
shards & replicas:
“分片(shards)”:一個“索引”有可能存儲的數據量超過了硬盤的容量,為了解決這個問題,ElasticSearch 支持將一個“索引”細分為多個“分片(shards)”,將其分布到不同的“節點”上,構成分布式搜索。
“副本(replicas)”:“副本(replicas)”提供了高可用性,當某個節點/分片損壞時,可以從“副本”中恢復。“副本”提供了可伸縮性,在搜索量上升時,“副本”可實現并行查詢。
每個“索引(index)”都可以被分割為多個“分片”,同樣,每個“索引”可以有0或多個“副本”。
“分片”和“副本”的數量可以在每個“索引”創建時指定。但創建完成后,不可以再分配索引的”分片“。默認情況下(至少擁有兩個”節點“),ElasticSearch 會分配5個”分片“,每個“分片”會產生1個”副本”。
?
?【搜索引擎 ElasticSearch 之 步步為營 【主目錄】】
?
轉載于:https://www.cnblogs.com/sweetWinne/p/4236435.html
總結
以上是生活随笔為你收集整理的搜索引擎 ElasticSearch 之 步步为营2 【基础概念】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看端口被占用的进程号然后结束进程(解决
- 下一篇: 我到底要选择一种什么样的生活方式,度过这