gpt4 book ai didi

azure - Cosmos DB 中的索引

转载 作者:行者123 更新时间:2023-12-03 04:41:54 25 4
gpt4 key购买 nike

我有一个巨大的 Cosmos DB 集合。它有大约 500K 条记录,我的 RU 范围是 1000RU/s。我已经为自定义列创建了列索引。以下是索引 JSON 架构。

{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/Column1/?",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
}
]
},
{
"path": "/Column2/?",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
}
]
}
],
"excludedPaths": [
{
"path":"/Column4/*"
}
]
}

下面是我的集合结构。

{
"Column1": "Data1",
"Column2": "Data2",
"Column3": "Data3",
"Column4": "Data4"
}

当我触发以下选择查询(“SELECT * FROM r where INDEX_OF(r.Column2,'Data2')>-1”)时,它会返回正确的值。但它是批量执行的,而不是从索引中获取值。例如,查询应仅返回一条记录。但它返回空白并带有延续 token 。我希望索引应该从现有索引中返回记录。有什么我错过的吗?

最佳答案

此查询不会使用索引,因为无法从索引提供 INDEX_OF。 CONTAINS 系统函数也是如此(相当于 INDEX_OF() > -1)。对于字符串系统函数,只有这些函数才会使用索引:

  • STARTSWITH(str_expr, str_expr)
  • LEFT(str_expr, num_expr) = str_expr
  • SUBSTRING (str_expr, num_expr, num_expr) = str_expr,但前提是第一个 num_expr 为 0

关于azure - Cosmos DB 中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51881283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com