Cosmos DB分区键索引作用及范围查询默认支持情况咨询
Cosmos DB分区键索引配置与范围搜索问题解答
一、指定索引配置的作用
你给出的索引配置:
"includedPaths": [ { "path": "/pk/?" } ]
这个配置的作用是仅为分区键pk字段创建索引,容器内其他所有非分区键字段都不会被索引。
需要注意的是,分区键本身默认就会被Cosmos DB自动索引,所以这个配置本质上是将容器的索引范围限制在了pk字段上。后续如果针对非pk字段执行查询,要么因为缺少索引无法执行,要么只能触发全集合扫描(这种方式性能差且不推荐)。
二、分区键范围搜索的默认支持情况
对于字符串类型的分区键,默认情况下不支持范围搜索。
原因是Cosmos DB默认对字符串类型字段采用哈希索引策略,这种索引仅能处理相等匹配类的查询(比如pk = "value")。如果要实现范围搜索(比如pk > "a"、pk BETWEEN "x" AND "z"这类逻辑),必须显式修改索引配置,将pk字段的索引类型指定为范围(Range),示例配置如下:
"includedPaths": [ { "path": "/pk/?", "indexes": [ { "kind": "Range", "dataType": "String", "precision": -1 } ] } ]
内容的提问来源于stack exchange,提问作者MaxP
相关产品推荐
相关产品推荐

