1

我在 Cosmos DB 中有一个集合,其中包含不同类型(和模式)的文档:

{
"partKey": "...",
"type": "type1",
"data": {
    "field1": 123,
    "field2": "sdfsdf"
  }
}
{
"partKey": "...",
"type": "type2",
"data": {
    "field3": ["123", "456", "789"]
  }
}

我正在尝试创建一个复合索引[/type, /data/field3/[]/?],但遇到了一个问题:

The indexing path '\\/data\\/field3\\/[]\\/?' could not be accepted, failed near position '15'. Please ensure that the path is a valid path. Common errors include invalid characters or absence of quotes around labels
4

2 回答 2

2

Cosmos DB 中的复合索引不支持通配符。这是一个综合指数样本作为参考。

我们将更新我们的文档以使其更加清晰。我查看了这些,我们今天没有记录。

谢谢。

于 2020-04-27T17:49:23.017 回答
0

在复合索引中,您只需要指定要索引的路径,而不是值,因此对于您的示例:

"compositeIndexes":[  
        [  
            {  
                "path":"/type",
                "order":"ascending"
            },
            {  
                "path":"/data/field3",
                "order":"descending"
            }
        ]
    ]

只需指定查询所需的订单类型(我只是以这些为例)。

对于在数据属性下具有不同属性的不同文档,我相信您必须为所需的每个用例添加每个复合索引,因为复合索引不支持通配符,因此您需要添加:

/data/field1 /data/field2 etc etc

希望这可以帮助。

于 2020-04-27T22:05:47.307 回答