Лучшая точность для строк в политиках индексирования DocumentDB

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

collection.IndexingPolicy.IncludedPaths.Add(
new IncludedPath { 
    Path = "/customId/?", 
    Indexes = new Collection<Index> { 
        new HashIndex(DataType.String) { Precision = 20 } } 
});

Будет около 10 000 различных customId, так какова правильная «точность»? Что, если он получит более 100 000 000 идентификаторов?


person Vej    schedule 05.05.2017    source источник


Ответы (1)


Будет около 10 000 различных customId, так какова правильная «точность»? Что, если он получит более 100 000 000 идентификаторов?

Как сказал Эндрю Лю в этой теме: Точность индексации для хэша index указывает количество байтов для хеширования значения свойства.

А как мы знаем, 1 байт = 8 бит, что может содержать 2^8 = 256 значений. 2 байта могут содержать 2^16 = 65 536 значений и так далее. Вы можете выполнить аналогичный расчет, чтобы получить точность индексации на основе количества документов, которые, как вы ожидаете, будут содержать путь для свойства customId.

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

person Fei Han    schedule 05.05.2017
comment
Я уже прочитал этот документ, но не не найти Эндрю Лю. Благодарю вас! Это очень полезно. - person Vej; 05.05.2017