DocumentDB索引策略中字符串的最佳精度

时间:2017-05-05 05:22:03

标签: azure indexing hash azure-cosmosdb document-database

我正在为我的集合编写索引策略,并试图找出哈希索引中String的正确“精度”,即

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

将有大约10,000种不同的customId,那么什么是正确的“精度”?如果它超过100,000,000个ID会怎么样?

1 个答案:

答案 0 :(得分:2)

  

将有大约10,000种不同的customId,那么什么是正确的“精度”?如果它超过100,000,000个ID会怎么样?

Andrew Liu在this thread中说: 哈希索引的索引精度表示将属性值哈希的字节数。

正如我们所知,1个字节= 8位,可以容纳2 ^ 8 = 256个值。 2个字节可以容纳2 ^ 16 = 65,536个值,依此类推。您可以执行类似的计算,以根据您希望包含属性customId的路径的文档数来获取索引精度。

此外,您可以在this article中引用 索引精度部分​​ ,并在指定索引精度时在索引存储开销和查询性能之间进行权衡。