分布式搜索服務ElasticSearch(11)
elasticsearch路由算法
當索引一個文檔(Document)的時候,文檔會被存儲到一個主分片中。ElasticSearch如何知道一個文檔應該存放到哪個分片中呢?當我們創建文檔時,它如何決定這個文檔應當被存儲在分片1還是分片2中呢?首先這肯定不會是隨機的,否則將來要獲取文檔的時候我們就不知道從何處尋找。
ElasticSearch中提供了兩種路由算法:
默認路由: shard=hash(routing)%number_of_primary_shards ,這里路由策略擴展受到shards個數的限制,擴容的時候需要成倍擴容(ES6.x),并且在創建index的時候要指定未來允許擴容的規模。ES5.x不支持擴容;ES7.x可以自由擴容。
自定義路由:該路由方式,通過指定routing的方式,可以影響文檔寫入到哪個shard,也可以僅僅檢索特定的shard。
Elasticsearch 分布式 實時流計算服務 CS
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。