當前位置:編程學習大全網 - 網站源碼 - 路由片段源代碼

路由片段源代碼

本節主要深入壹些原理性的知識,包括文檔路由原理、書寫壹致性、讀取和添加、刪除和修改請求。

(1)文檔被路由到碎片是什麽意思?

壹個索引的數據將被分成多個分片。所以壹個文檔只能存在於壹個碎片中。當客戶機創建壹個文檔時,es需要決定這個文檔放在這個索引的哪個碎片上。這個過程叫做文檔路由,也就是數據路由。

(2)路由算法:shard = hash(路由)% NUMBER _ of _ primary _ shards

例如,壹個索引有三個主要碎片,P0,P1,P2。

每次添加、刪除或更改文檔時,都會帶來壹個路由號。默認為該單據的id(可以手工指定,也可以自動生成)。ES會把這個路由值傳入壹個哈希函數,產生壹個路由值的哈希值,hash(routing) = 21。那麽哈希函數產生的值就是這個索引的主分片數的余數,21% 3 = 0。ES只是把這個文檔放在P0上。(由此可以知道為什麽primary_shards的數量是固定的。)

(3)手動指定路由:_ id或自定義路由值。

默認路由是_id,或者您可以在發送請求時手動指定路由,例如

具體操作請參考官方文件。

_ routing field | Elastic search Reference[7.6]| Elastic/article/110

  • 上一篇:模板和源代碼
  • 下一篇:轉發源碼涉嫌侵權應如何進行賠償
  • copyright 2024編程學習大全網