CosmosDB 中的索引数组

Index array in CosmosDB

我正在尝试在 Cosmos DB 中为我的 Dogs 数组编制索引,但是在 Azure 门户的索引策略部分中添加索引根本不会改变成本。我读了他们的索引政策,是的,他们说默认情况下所有字段都被索引,并且对于 lists/complex 对象,里面的字段也被索引..但是他们是吗?

{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*",
            "indexes": [
                {
                    "kind": "Range",
                    "dataType": "Number",
                    "precision": -1
                },
                {
                    "kind": "Range",
                    "dataType": "String",
                    "precision": -1
                },
                {
                    "kind": "Spatial",
                    "dataType": "Point"
                }
            ]
        },
        {
            "path": "/Dogs/[]/?",
            "indexes": [
                {
                    "kind": "Range",
                    "dataType": "String",
                    "precision": -1
                },
                {
                    "kind": "Range",
                    "dataType": "Number",
                    "precision": -1
                }
            ]
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        }
    ]
}

添加第二条路径,应该专门涵盖我的对象列表,但此更改根本不会反映在查询成本中。

是否有可能更改需要时间并且索引不会立即反映,而是在几个小时后反映?数据库非常庞大,超过 10 万个条目。

编辑: 似乎索引的创建为查询带来了一些改进(将路径添加到排除路径以检查差异,并且可见)

你似乎已经猜到了,答案是 "Yes, they're indexed by default, so you won't see any difference specifically indexing them."

顺便说一句,你可以在这里回答你自己的问题并接受它。你不会得到任何分数,但我经常这样做,出于几个原因,这是一个好主意。首先,它表明问题已得到解答,其次,它使答案变得清晰,并使您的问题成为遇到相同问题的其他所有人的资源。请随意忽略此答案并制作您自己的答案。

似乎创建了索引并为查询带来了一些改进(将路径添加到排除路径以检查差异,并且它是可见的),所以我猜列表确实是默认索引的。