當您在分片環境中使用RavenDB時,文檔ID將包含分片ID,如europe/companies/21
。它也記錄on the RavenDB site:RavenDb分片和文檔ID
ModifyDocumentId:讓您存儲的碎片ID爲 文檔本身中的文檔。默認的實現是:(慣例,shardId, documentId)=> shardId + convention.IdentityPartsSeparator + documentId
通過這樣做,我猜RavenDB是搞清楚智能查詢技術,可以專門針對適當的碎片這很棒。但是,我有幾個問題我無法回答:
如果我需要將文檔移動到新的碎片,那麼該怎麼辦?這會改變密鑰並破壞使用該密鑰的URL,如問here。
我可能只從一臺服務器開始,然後我可能決定實施分片。所以,在這種情況下,鍵會改變(?)或者智能查詢不起作用(?)。
關於這些問題的一般建議是什麼以及這些問題是如何解決的?
感謝您的回答。無論如何改變分片環境中的id代?我希望我的ID看起來像'countries/1001',其中前3位是碎片ID。在我們的例子中,分片ID是100,文檔ID是1. – tugberk
是的,你可以這樣做,查看ShardStrategy上的ModifyDocumentId –