Ошибка: у заказа по запросу нет соответствующего составного индекса, из которого он может быть обслужен - PullRequest
1 голос
/ 18 января 2020

При выполнении следующего запроса я получаю сообщение об ошибке

select * from c order by c.Agent.LastStateChangeUnixTime desc,c.Priority asc

Заказ по запросу не имеет соответствующего составного индекса, который может быть обработан из

Я добавил составной индекс, как указано в документации здесь и здесь

Мой составной индекс неверен? Или я что-то упустил?

Мои настройки индекса:

{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*"
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        }
    ],
    "compositeIndexes": [
        [
            {
                "path": "/Priority",
                "order": "descending"
            },
            {
                "path": "/Agent/LastStateChangeUnixTime",
                "order": "ascending"
            }
        ]
    ]
}

Пример объекта:

{
    "Agent": {
        "TenantId": 999999,
        "PrimaryState": "Null",
        "PendingState": "Null",
        "LastStateChange": "2020-01-18T05:48:11.5397269+00:00",
        "LastStateChangeUnixTime": 1579326491,
        "Notes": null,
        "AgentId": 123,
        "id": "agent-123"
    },
    "AgentId": 123,
    "SkillName": "English",
    "id": "SkillName123",
    "Priority": 10,
    "_rid": "SVIMANKqJboCAAAAAAAAAA==",
    "_self": "dbs/SVIMAA==/colls/SVIMANKqJbo=/docs/SVIMANKqJboCAAAAAAAAAA==/",
    "_etag": "\"2200819a-0000-0700-0000-5e229c1d0000\"",
    "_attachments": "attachments/",
    "_ts": 1579326493
}

1 Ответ

2 голосов
/ 19 января 2020

Да, ваш составной индекс неверен для этого запроса. Порядок, в котором они отображаются, имеет значение, поэтому предложение WHERE должно соответствовать порядку.

Измените или добавьте следующее в ваш составной индекс.

"compositeIndexes": [
    [
        {
            "path": "/Agent/LastStateChangeUnixTime",
            "order": "descending"
        },
        {
            "path": "/Priority",
            "order": "ascending"
        }
    ]
]
...