为什么"path":"/" _etag\ "/?" 从 CosmosDB 的索引策略中的排除路径中排除



我使用powershell更新索引策略,但默认情况下它在excludedpath中添加"path": "/"_etag"/?"属性我希望索引策略是

{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [],
"excludedPaths": [
{
"path": "/*"
},
]
}

我使用的脚本

$indexPathExcluded = "/*"
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy  -ExcludedPath $indexPathExcluded -IndexingMode Consistent -Automatic $true
update-AzCosmosDBSqlContainer -ResourceGroupName myresourcename -AccountName myaccountname -DatabaseName mydatabasename -Name myCollectionname -IndexingPolicy $indexingPolicy

但有了这个,我得到了的结果

{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [],
"excludedPaths": [
{
"path": "/*"
},
{
"path": "/"_etag"/?"
}
]
}

etag默认情况下被排除在索引策略之外,作为服务的优化,以减少对索引和查询中使用的有限或没有用处的属性的RU消耗。

etag是用于乐观并发控制的内部系统属性。etag由服务在最初插入项目时生成,然后在每次更新时更新。您可以在此处查看如何使用OCC的示例。

作为OCC使用的内部属性,此属性不添加索引和查询中使用的值。OCC检查不使用索引。而且,由于每次更新(包括在索引策略中(时值都会发生变化,因此每次都会重新索引值,这将不必要地消耗额外的吞吐量(RU/s(。

相关内容

  • 没有找到相关文章

最新更新