У меня есть одна коллекция Azure Cosmos DB, к которой я обращаюсь, надеясь использовать геопространственный индекс для эффективных запросов.Проблема, с которой я сталкиваюсь, заключается в том, что потребление RU кажется неэффективным.
В коллекции содержится всего 50 КБ документов по 1 КБ, но запрос с использованием ST_DISTANCE, возвращающий один документ, потребляет> 900 RU.
Я видел, как RU масштабируется линейно на основе количества документовв коллекции.Казалось бы, индексирование должно предотвращать это поведение.
Пример запроса (950 RU):
SELECT * FROM c where ST_DISTANCE(c.location, { 'type': 'Point', 'coordinates': [34.69, -1.91] }) < 500
Пример документа:
[
{
"id": "1504891036",
"name": "Oujda",
"location": {
"type": "Point",
"coordinates": [
34.69,
-1.91
]
},
"population": 409391,
"country": "Morocco",
"country.iso2": "MA",
"country.iso3": "MAR",
}
]
Я не изменил значение по умолчаниюполитика индексирования, которая, кажется, охватывает пространственную индексацию:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Spatial",
"dataType": "Point"
}
]
}
],
"excludedPaths": []
}