Предлагаю развить тему. Фильтр Блума - полезная структура, есть реализация прямо в spark: dataframe.stat.bloomFilter возвратит построенный с определёнными характеристиками фильтр. Но это, скорее, родственная хеш-таблицам структура, использующая битовый массив для хранения значений хешей. К тому же вероятностная, есть регулируемый шанс ложноположительных ответов. И сделать глобальную структуру затруднительно, по крайней мере для меня. С отдельным файлом всё хорошо, для миллиона файлов - миллион отдельных фильтров, не очень-то (
Настоящие битовые индексы - это полноценные инвертированные индексы со многими возможностями. Но традиционно используются в хранилищах данных для полей с низкой селективность. Классический пример: пол человека, всего два значения (классическая интерпретация, напомню)).
И вот, меня интересует, есть ли применение и реализация битовых индексов для высокоселективных, в том числе уникальных полей?