如何配置Azure Cosmos容器索引策略仅索引默认id?策略有效性确认
Azure Cosmos DB 仅索引默认
id字段的索引策略配置 关于你给出的配置的效果
你提供的这个索引策略配置:
indexing_policy { indexing_mode = "consistent" excluded_path { path = "/*" } }
不会移除id字段的索引,最终效果是仅保留默认id字段的索引,其他所有内容都不会被索引。
原因是:id是Azure Cosmos DB的系统保留字段,它的索引是强制开启的,不受自定义排除路径的影响——不管你怎么配置排除规则,id都会被自动索引,以此保证容器内文档的唯一性约束。
如何定义仅索引id字段的索引策略
有两种等价的配置方式,都能实现仅索引id的需求:
方式1:排除所有路径(推荐)
就是你给出的配置,利用系统对id的强制索引特性,直接排除所有自定义路径,自动保留id的索引:
indexing_policy { indexing_mode = "consistent" excluded_path { path = "/*" } }
方式2:显式包含id路径并排除其他
如果你想更明确地声明只索引id,也可以显式添加包含id的路径,同时排除所有其他路径:
indexing_policy { indexing_mode = "consistent" included_path { path = "/id/?" } excluded_path { path = "/*" } }
这种写法和方式1效果完全一致,只是更直观地体现了只索引id的意图。
注意:两种方式最终的索引效果没有区别,因为
id的索引是系统强制的,即使你不写included_path,它也会被保留。
内容的提问来源于stack exchange,提问作者jlyh
相关产品推荐
相关产品推荐

