我使用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(。