У меня есть многораздельная коллекция в базе данных cosmos с настраиваемой политикой индексации (около 30 полей включительно) и согласованным режимом индексации.Когда размер собранных данных достиг высокого уровня, было решено удалить некоторые документы (~ 50 КБ) из коллекции и переместить в другое хранилище.
После удаления размер данных значительно уменьшился, но размер индекса остался прежним и даже начал увеличиваться.кажется очень странным, потому что я ожидаю, что размер индекса уменьшится так же, как размер данных.Разве это не удаляется при удалении данных?Должен ли я сделать что-то дополнительное, чтобы удалить индексы?Можно ли считать, что размер данных меньше размера индекса?
Снимок экрана для метрик коллекции Azure:
![enter image description here](https://i.stack.imgur.com/hwnvF.png)
Удаление выполнено с помощью js сохраненного процесса
function bulkDeleteByCondition() {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
var query = "SELECT root._self FROM root";
var responseBody = {
deleted: 0,
continuation: true
};
tryQueryAndDelete();
function tryQueryAndDelete(continuation) {
var requestOptions = { continuation: continuation };
var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, retrievedDocs, responseOptions) {
if (err) {
throw new Error(`Failed on collection.queryDocuments: ${err} for query ${query}`);
}
if (retrievedDocs.length > 0) {
tryDelete(retrievedDocs);
} else if (responseOptions.continuation) {.
tryQueryAndDelete(responseOptions.continuation);
} else {
responseBody.continuation = false;
response.setBody(responseBody);
}
});
if (!isAccepted) {
response.setBody(responseBody);
}
}
function tryDelete(documents) {
if (documents.length > 0) {
var isAccepted = collection.deleteDocument(documents[0]._self, {}, function (err, responseOptions) {
if (err) {
throw new Error(`Failed on collection.deleteDocument: ${err} for query ${query}`);
}
responseBody.deleted++;
documents.shift();
tryDelete(documents);
});
if (!isAccepted) {
response.setBody(responseBody);
}
} else {
tryQueryAndDelete();
}
}
}