Разнородная коллекция документов CosmosDB — составная индексация

#indexing #azure-cosmosdb

#индексирование #azure-cosmosdb

Вопрос:

Я использую единую коллекцию для всех своих документов, а затем создаю их экземпляры в POCO, используя свойство «type». Пока все идет отлично.

Теперь мне нужно добавить несколько возможностей сортировки.

Это не работает, и в нем говорится, что мне нужен составной индекс. Хорошо, я понимаю.

Но как мне создать Indexing policy , когда он захочет paths , который не будет существовать в некоторых типах документов или может существовать в нескольких типах документов?

Действительно ли мне нужно создавать коллекцию для каждого типа документа, чтобы это работало?

TIA

Ответ №1:

Он просто проигнорирует эти элементы. Также обратите внимание, что в то время как для составных индексов необходимо указывать пути для включения вместе с порядком их сортировки. Для обычного индекса обычно предпочтительнее включать все пути (т. Е. «/ *»), А Затем указывать эти пути для исключения. Таким образом, вам не нужно постоянно обновлять свою политику индексации при добавлении новых типов сущностей в свою коллекцию.

Также обратите внимание, что максимальное количество путей составного индекса для составного индекса равно 8 на контейнер. Также в настоящее время запросы будут использовать только один путь за раз, но это очень скоро изменится, чтобы использовать несколько путей одновременно, что значительно улучшит производительность запросов, которые их используют.

Комментарии:

1. Огромная помощь. Я изменил свой репозиторий, чтобы разрешить размещение документов в их собственном контейнере, что, как я знаю, может повлиять на возможности транзакций. Спасибо за подсказку 8. Таким compositeIndexes образом, массив может обрабатывать более 8 записей в нем, но внутри одного индекса может быть только 8 путей. Правильно ли я понимаю? Я не могу найти это в документах. Есть ли у вас шанс, что у вас есть ссылка? Помечаем это как ответ.

2. Да, правильно, он может поддерживать только 8 путей на индекс. Но у вас могут быть сотни индексов. Да, задокументировано здесь . learn.microsoft.com/en-us/azure/cosmos-db/… Спасибо!