Я пишу сценарий создания базы данных с использованием Java SDK, и политика индексирования не создается должным образом (и задокументировано ).
- Используется JAVA SDK:
com.microsoft.azure:azure-documentdb:2.4.0
- Эмулятор Azure Cosmos DB 2.2.2 для Windows
- Текущая установка Cosmos DB на портале Azure с учетной записью SQL
Я создаю запрос на создание коллекции с помощью JAVAбиблиотека и результат (перед фактическим запросом) выглядит следующим образом (DocumentCollection::toJson()
):
{
"uniqueKeyPolicy": {},
"partitionKey":
{
"kind": "Hash",
"paths": ["/playerId"]
},
"indexingPolicy":
{
"indexingMode": "Consistent",
"automatic": true,
"includedPaths": [
{
"path": "/gameId/?",
"indexes": [
{
"kind": "Range",
"dataType": "String"
}
]
},
{
"path": "/playerId/?",
"indexes": [
{
"kind": "Range",
"dataType": "String"
}
]
},
{
"path": "/date/*",
"indexes": [
{
"kind": "Range",
"dataType": "String"
}
]
}
],
"excludedPaths": [
{
"path": "/*"
}
]
},
"id": "Games"
}
Запрос завершается успешно, но если я проверяю фактическую политику индексации с помощью проводника данных или DocumentClient.readCollection
, это выглядит такthis:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/gameId/?",
"indexes": []
},
{
"path": "/playerId/?",
"indexes": []
},
{
"path": "/date/*",
"indexes": []
}
],
"excludedPaths": [
{
"path": "/*"
},
{
"path": "/\"_etag\"/?"
}
]
}
Как видите, массивы для определений индекса пусты .Затем, если я скопирую политику индексации из сгенерированного SDK вывода и вручную вставлю ее в окно «Масштаб и настройки» эмулятора или портала для созданной коллекции, результат обновления будет следующим:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/gameId/?",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
},
{
"path": "/playerId/?",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
},
{
"path": "/date/*",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
],
"excludedPaths": [
{
"path": "/*"
},
{
"path": "/\"_etag\"/?"
}
]
}
Итак, индексысоздано (хотя с дополнительной Number
записью, как указано здесь ).Я что-то не так делаю со сценарием создания?