ElasticSearch 核心概念介绍_02
文章目錄
- 1. 集群(Cluster)
- 2. 節點(Node)
- 3. 索引(Index)
- 4. 類型(Type)
- 5. 文檔(Document)
- 6. 分片(Shards)
- 7. 副本(Replicas)
- 8. Settings
- 9. Mapping
- 10. Analyzer
- 11. ElasticSearch Vs 關系型數據庫
ElasticSearch 十大核心概念
1. 集群(Cluster)
一個或者多個安裝了 es 節點的服務器組織在一起,就是集群,這些節點共同持有數據,共同提供搜索服務。
一個集群有一個名字,這個名字是集群的唯一標識,該名字成為 cluster name,默認的集群名稱是 elasticsearch,具有相同名稱的節點才會組成一個集群。
可以在 config/elasticsearch.yml 文件中配置集群名稱:
cluster.name: gblfy-es在集群中,節點的狀態有三種:綠色、黃色、紅色:
- 綠色:節點運行狀態為健康狀態。所有的主分片、副本分片都可以正常工作。
- 黃色:表示節點的運行狀態為警告狀態,所有的主分片目前都可以直接運行,但是至少有一個副本分片是不能正常工作的。
- 紅色:表示集群無法正常工作。
2. 節點(Node)
集群中的一個服務器就是一個節點,節點中會存儲數據,同時參與集群的索引以及搜索功能。一個節點想要加入一個集群,只需要配置一下集群名稱即可。默認情況下,如果我們啟動了多個節點,多個節點還能夠互相發現彼此,那么它們會自動組成一個集群,這是 es 默認提供的,但是這種方式并不可靠,有可能會發生腦裂現象。所以在實際使用中,建議一定手動配置一下集群信息。
3. 索引(Index)
索引可以從兩方面來理解:
名詞:
具有相似特征文檔的集合。
動詞:
索引數據以及對數據進行索引操作。
4. 類型(Type)
類型是索引上的邏輯分類或者分區。在 es6 之前,一個索引中可以有多個類型,從 es7 開始,一個索引中,只能有一個類型。在 es6.x 中,依然保持了兼容,依然支持單 index 多個 type 結構,但是已經不建議這么使用。
5. 文檔(Document)
一個可以被索引的數據單元。例如一個用戶的文檔、一個產品的文檔等等。文檔都是 JSON 格式的。
6. 分片(Shards)
索引都是存儲在節點上的,但是受限于節點的空間大小以及數據處理能力,單個節點的處理效果可能不理想,此時我們可以對索引進行分片。當我們創建一個索引的時候,就需要指定分片的數量。每個分片本身也是一個功能完善并且獨立的索引。
默認情況下,一個索引會自動創建 1 個分片,并且為每一個分片創建一個副本。
7. 副本(Replicas)
副本也就是備份,是對主分片的一個備份。
8. Settings
集群中對索引的定義信息,例如索引的分片數、副本數等等。
9. Mapping
Mapping 保存了定義索引字段的存儲類型、分詞方式、是否存儲等信息。
10. Analyzer
字段分詞方式的定義。
11. ElasticSearch Vs 關系型數據庫
| 數據庫 | 索引 | |
| 表 | 類型 | es7以后剔除 |
| 行 | 文檔 | |
| 列 | 字段 | |
| 表結構 | 映射(mapping) | |
| SQL | DSL(Domain Specific Language) | |
| select | GET http:// | |
| update xxx set xxx = xxx | PUT http:// | |
| delete | DELETE http:// | |
| 索引 | 全文索引 |
總結
以上是生活随笔為你收集整理的ElasticSearch 核心概念介绍_02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker RocketMQ 集群
- 下一篇: SpringCloud Gateway