我正在为我的集合编写索引策略,并试图找出哈希索引中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中的索引精度部分,并在指定索引精度时在索引存储开销和查询性能之间进行权衡.