ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)
資料來自於ElasticSearch官方文件。
ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)
1 建立索引
首先:傳送一個索引或者刪除的請求給node1
其次:node1接到請求之後,會根據請求中攜帶的引數“文件id”判斷出該文件應該儲存在具體哪一個shard中
shard = hash(routing) % numberofprimary_shards
,比如shard0;其次就是node1通過後設資料資訊可以知道shard0在具體哪一個節點,於是node1會把請求轉發給node3
最後:node3接收到請求之後會將請求並行的分發給shard0的所有replica shard之上,也就是存在於node 1和node 2中的replica shard;如果所有的replica shard都成功地執行了請求,那麼將會向node 3回覆一個成功確認,當node 3收到了所有replica shard的確認資訊後,則最後向使用者返回一個Success的訊息。
2 刪除索引
該過程可以分為四個階段來描述:
階段1:客戶端向node 1傳送一個文件刪除的請求。
階段2:同樣的node 1通過請求中文件的 _id 值判斷出該文件應該被儲存在shard 0 這個分片中,並且node 1知道shard 0的primary shard位於node 3這個節點上。因此node 1會把這個請求轉發到node 3。
階段3:node 3接收到請求後,在主分片上面執行刪除請求
階段4:如果node 3成功地刪除了文件,node 3將會請求並行地發給其餘所有的replica shard所在node中。這些node也同樣操作刪除,執行後則向node 3確認成功,當node 3接收到所有的成功確認之後,再向客戶端傳送一個刪除成功的資訊。
3 查詢索引
檢索文件的時候,我們並不知道文件在叢集中的哪個位置,所以一般情況下不得不去詢問index中的每一個shard,然後將結果拼接成一個大的已排好序的彙總結果列表;
(1):客戶端傳送一個檢索請求給node3,此時node3會建立一個空的優先順序佇列並且配置好分頁引數from與size。
(2):node3將檢所請求傳送給index中的每一個shard(primary 和 replica),每一個在本地執行檢索,並將結果新增到本地的優先順序佇列中;
(3):每個shard返回本地優先順序序列中所記錄的_id與**score值**,併傳送node3。Node3將這些值合併到自己的本地的優先順序佇列中,並做全域性的排序(node 3將它們合併成一條彙總的結果),返回給客戶端。
相關文章
- elasticsearch(三)----索引建立與刪除Elasticsearch索引
- mongodb建立索引和刪除索引和背景索引backgroundMongoDB索引
- MySQ索引操作命令總結(建立、重建、查詢和刪除索引命令詳解)索引
- Elasticsearch(三):索引查詢Elasticsearch索引
- elasticsearch之多索引查詢Elasticsearch索引
- 【Mongo】MongoDB索引管理-索引的建立、檢視、刪除MongoDB索引
- Mysql索引的建立與刪除MySql索引
- mysql刪除主鍵索引,刪除索引語法MySql索引
- mysql 建立和刪除聯合索引MySql索引
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 61_索引管理_快速上機動手實戰建立、修改以及刪除索引索引
- Sqlserver自動查詢缺失索引及拼出建立索引的語句的指令碼SQLServer索引指令碼
- ElasticSearch 索引 VS MySQL 索引Elasticsearch索引MySql
- indexedDB 通過索引查詢資料Index索引
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化
- DataFrame刪除複合索引索引
- python建立elasticsearch索引的探討PythonElasticsearch索引
- 筆記 mongo查詢慢日誌,建立索引筆記Go索引
- 【Elasticsearch】Elasticsearch 索引模板Elasticsearch索引
- oracle索引核心過程Oracle索引
- elasticsearch索引原理Elasticsearch索引
- HugeGraph之索引重建和刪除索引
- AppBoxFuture: 二級索引及索引掃描查詢資料APP索引
- [20180926]查詢相似索引.txt索引
- MongoDB慢查詢與索引MongoDB索引
- Oracle服務啟動-索引-子查詢-分頁儲存過程問題Oracle索引儲存過程
- Elasticsearch Query DSL建立滾動索引(生命週期策略)Elasticsearch索引
- 《Elasticsearch技術解析與實戰》Chapter 2.1 Elasticsearch索引增刪改查ElasticsearchAPT索引
- 什麼情況下需要建立索引? 索引的作用?為什麼能夠提高查詢速度?(索引的原理) 索引有什麼副作用嗎?索引
- elasticsearch配置注入索引Elasticsearch索引
- Elasticsearch 學習索引Elasticsearch索引
- MySQL索引與查詢優化MySql索引優化
- IndexPatternService 模糊查詢索引 fuzzyQuery分析Index索引
- Elasticsearch6.2.4-利用head外掛建立索引Elasticsearch索引
- ElasticSearch 倒排索引(Inverted Index)| 什麼是倒排索引?Elasticsearch索引Index
- Hive建立索引Hive索引
- DocumentDB 建立索引索引