【发布时间】:2018-05-31 00:07:16
【问题描述】:
为什么 CosmosDB 默认不索引数组?默认索引路径为
"path": "/*"
这不是意味着“索引所有内容”吗?不是“索引除数组之外的所有内容”。
如果我将数组字段添加到索引中,如下所示:
"path": "/tags/[]/?"
它将工作并开始索引该特定数组字段。
但我的问题是为什么“索引所有内容”不索引所有内容?
编辑:这是一篇描述我所看到的行为的博客文章。 http://www.devwithadam.com/2017/08/querying-for-items-in-array-in-cosmosdb.html Array_Contains 查询很慢,显然没有使用索引。如果您将相关字段显式添加到索引中,则查询速度很快(显然它们开始使用索引)。
【问题讨论】:
-
默认情况下所有属性都被索引,包括数组属性。好奇你为什么建议他们不是。您有遇到问题的特定查询吗?如果是这样,请编辑您的问题以澄清您的具体问题。正如所写,这个问题不清楚,因为我们不知道您的具体问题。
-
@DavidMakogon 数组默认情况下不被索引(尽管我同意它们应该被索引,并且所有文档都表明它们是,但它们不是。)如果没有对内容的显式数组索引查询阵列需要 10 秒并花费数千个 RU。添加该索引,查询会立即返回并花费几个 RU。这里有一篇关于它的博客文章:devwithadam.com/2017/08/…
-
您能否说明您使用的是哪个 API?
-
我使用 Microsoft.Azure.DocumentDB.Core 包。而且我还使用 Cerebrata Cerulean 工具。
-
这不再是新配置的集合的问题
标签: azure azure-cosmosdb