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

我正在为我的集合编写索引策略,并试图找出哈希索引中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 ids怎么办?

最佳答案

There will be around 10,000 different customId, so what is the right “Precision”? What if it gets more than 100,000,000 ids?

正如Andrew Liu在this thread中所说:哈希索引的索引精度指示要将属性值哈希的字节数.

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

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

点赞