Тип данных QBit реорганизует хранение векторов, чтобы ускорить приближенный поиск. Вместо того чтобы хранить элементы каждого вектора вместе, он группирует одинаковые позиции битов во всех векторах.
При этом векторы хранятся с полной точностью, а во время поиска вы можете выбирать уровень квантования: считывать меньше битов, чтобы сократить I/O и ускорить вычисления, или больше битов для более высокой точности. Это дает выигрыш в скорости за счет уменьшения объема передаваемых данных и вычислений благодаря квантованию, при этом все исходные данные при необходимости остаются доступными.
Чтобы объявить столбец типа QBit, используйте следующий синтаксис:
element_type – тип каждого элемента вектора. Допустимые типы: BFloat16, Float32 и Float64
dimension – размерность, то есть число элементов в каждом векторе
Использование типа QBit при определении столбца таблицы:
Преобразование массивов в QBit
Массивы преобразуются в QBit, если длина массива соответствует размерности QBit. Тип элементов массива не обязательно должен совпадать с типом элементов QBit. Любой числовой тип элементов автоматически преобразуется в нужный тип. Это позволяет напрямую перенести существующий столбец эмбеддингов в столбец QBit:
Явное преобразование также работает с CAST, например CAST(embedding AS QBit(Float32, 8)).
QBit реализует шаблон доступа к подстолбцам, который позволяет обращаться к отдельным битовым плоскостям сохранённых векторов. Доступ к каждой битовой позиции можно получить с помощью синтаксиса .N, где N — это позиция бита:
Количество доступных подстолбцов зависит от типа элементов:
BFloat16: 16 подстолбцов (1-16)
Float32: 32 подстолбца (1-32)
Float64: 64 подстолбца (1-64)
Функции векторного поиска
Это функции расстояния для поиска по векторному сходству, использующие тип данных QBit:
Последнее изменение 2 июля 2026 г.