Можете ли вы сказать, почему использование индекса составляет 0,00%?
Я включаю этот путь в политику индексации:
{
"path": "/receivedDateTime/?",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
, и это пример моих документов:
{
"id": "",
"userId": "XYZ",
...
"receivedDateTime": 635903262620000000,
...
}
Когда я запускаю следующий запрос, я получаю нулевое использование индекса.Примечания:
- Это не происходит с любым другим свойством / путем, который я включил в политику индексирования
UserId - это ключ раздела
client.CreateDocumentQuery<Message>(UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId),
new FeedOptions
{
PopulateQueryMetrics = true,
MaxItemCount = maxItemCount
})
.Where(item => item.UserId == Guid.Parse("XYZ"))
.OrderBy(m => m.ReceivedDateTime)
.AsDocumentQuery();
С другой стороны, если я добавлю item.ReceivedDateTime >= 0
к предложению where, я получу 98,02% использования индекса, даже если item.ReceivedDateTime >= 0
верно для всех документов.
client.CreateDocumentQuery<Message>(UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId),
new FeedOptions
{
PopulateQueryMetrics = true,
MaxItemCount = maxItemCount
})
.Where(item => item.UserId == Guid.Parse("XYZ") && item.ReceivedDateTime >= 0)
.OrderBy(m => m.ReceivedDateTime)
.AsDocumentQuery();
Спасибо