詳細描述一下 Elasticsearch 索引文檔的過程 ?


面試官想了解 ES 的底層原理不再只關注業務層面了

解答

這里的索引文檔應該理解為文檔寫入 ES,創建索引的過程

文檔寫入包含單文檔寫入和批量 bulk 寫入這里只解釋一下單文檔寫入流程

記住官方文檔中的這個圖

第一步客戶寫集群某節點寫入數據發送請求。(如果沒有指定路由/協調節點

請求的節點扮演路由節點的角色。)第二步節點 1 接受到請求后使用文檔_id 來確定文檔屬於分片 0。請求會被轉 

到另外的節點假定節點 3。因此分片 0 的主分片分配到節點 3

第三步節點 3 在主分片上執行寫操作如果成功則將請求並行轉發到節點 1

和節點 2 的副本分片上等待結果返回所有的副本分片都報告成功節點 3  

向協調節點節點 1)報告成功節點 1 向請求客戶端報告寫入成功

如果面試官再問第二步中的文檔獲取分片的過程

回答借助路由算法獲取路由算法就是根據路由和文檔 id 計算目標的分片 id  

過程

1shard = hash(_routing) % (num_of_primary_shards)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM