2017-05-05 12 views
3

私は私のコレクションのためのインデックスポリシーを書き込み、すなわち、ハッシュインデックスのStringのための右の「精密」は何であるかを把握しようとしている最高精度

collection.IndexingPolicy.IncludedPaths.Add(
new IncludedPath { 
    Path = "/customId/?", 
    Indexes = new Collection<Index> { 
     new HashIndex(DataType.String) { Precision = 20 } } 
}); 

があります約10,000種類のcustomIdがありますので、正しい "Precision"は何ですか? 100,000,000以上のIDを取得するとどうなりますか?

答えて

1

約10,000種類のcustomIdがありますので、正しい "Precision"は何ですか? 100,000,000以上のIDを取得するとどうなりますか?

アンドリュー劉this threadに述べたように:ハッシュインデックスの割出し精度にプロパティ値をハッシュするバイトの数を示します。

私たちが知っているように、1バイト= 8ビットで、2^8 = 256の値を保持できます。 2バイトは2^16 = 65,536の値を保持することができます。同様の計算を実行して、プロパティcustomIdのパスが含まれることが予想されるドキュメントの数に基づいてインデックス精度を取得できます。

インデックスの精度を指定する場合以外にも、あなたはインデックス格納オーバーヘッドとクエリのパフォーマンスの間this articleとのトレードオフにインデックス精密セクションを参照することができます。

+0

私はすでに[そのドキュメント](https://docs.microsoft.com/en-us/azure/documentdb/documentdb-indexing-policies)を読んでいますが、[Andrew Liu's](http: //stackoverflow.com/questions/32732858/documentdb-guid-index-precision)。ありがとうございました!非常に役に立ちます。 – Vej

関連する問題