routing欄位介紹

2022-04-12 01:27:29 字數 1032 閱讀 1645

乙個document通過以下公式被路由到該索引下乙個特定的分片:

shard_num = hash(_routing)  % num_primary_shards

_routing的預設值是文件的_id或者文件的_parent id。

自定義路由可以通過指定每個文件的routing值來實現。

例如:'

1. 這個文件通過使用user1作為路由值,代替了id

2. 相同的路由值需要在getting、deleting或者updating時提供。

這個_routing 域在查詢時使用的例子:

}}'使用自定義路由搜尋

自定義路由可以降低搜尋的衝擊。乙個請求被直接匹配路由值的分片上,而不是分散在索引的所有分片中。

}}'這個搜尋將被在關聯user1、user2路由值的分片上執行。

}}}''

1. 路由必須在my_type文件中

2. 這個索引請求將會丟擲routing_missing_exception異常。

當自定了索引文件的_routing,則_id的唯一性將不能保證其在索引下所有分片中的唯一性。事實上,即使乙個擁有相同_id的文件同樣可能被分配在不通的分片中通過不同的_routing值。這就要求使用者來保證這個ids在全索引下的唯一性。

路由索引分割槽

shard_num = (hash(_routing) + hash(_id) % routing_partition_size) % num_primary_shards

這樣,通過_routing域計算出乙個分片集合,然後通過_id來選擇分片集合中的乙個分片。

為了保證這個特性,index.routing_partition_size值必須是大於1同時小雨index.number_of_shards的值。

一旦應用,這個索引將有以下限制:

在索引的對映中必須有_routing欄位。

rabbitmq 理論 路由 Routing

在前面的教程中,我們實現了乙個簡單的日誌系統。可以把日誌訊息廣播給多個接收者。本篇教程中我們打算新增乙個功能 使得它能夠只訂閱訊息的乙個字集。例如,我們只需要把嚴重的錯誤日誌資訊寫入日誌檔案 儲存到磁碟 但同時仍然把所有的日誌資訊輸出到控制台中 前面的例子,我們已經建立過繫結 bindings 如下...

ad hoc檢索 routing檢索

類似於圖書館裡的書籍檢索,即書籍庫 資料庫 相對穩定不變,不同使用者的查詢要求是千變萬化的。這種檢索就稱為ad hoc。基於web的搜尋引擎也屬於這一類。使用者的查詢要求相對穩定。在routing中,查詢常常稱為profile,也就是通常所說的興趣,使用者的興趣在一段時間內是穩定不變的,但是資料庫 ...

路由器安置 Routing

一條街道安裝無線網路,需要放置m個路由器。整條街道上一共有n戶居民,分布在一條直線上,每一戶居民必須被至少一台路由器覆蓋到。現在的問題是所有路由器的覆蓋半徑是一樣的,我們希望用覆蓋半徑盡可能小的路由器來完成任務,因為這樣可以節省成本。1 n,m 100000 首先這種問題可以採用二分答案的方法.嘗試...