VIEW (Векторный индекс)
Важно
Поддерживается только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.
Внимание
Фукциональность векторных индексов доступна, начиная с версии 25.1.2
.
Для включения векторных индексов необходимо установить значение feature flag enable_vector_index
в true
.
В настоящее время не поддерживается:
- Обновление индекса: модифицировать основную таблицу можно, но существующий индекс не обновится. Нужно построить новый индекс, чтобы учесть изменения. При необходимости, можно атомарно заменить существующий индекс на вновь построенный.
- Построение индекса для векторов c битовым квантованием.
Эти ограничения могут быть устранены в будущих версиях.
Для выполнения запроса SELECT
с использованием векторного индекса в строчно-ориентированной таблице используйте следующий синтаксис:
SELECT ...
FROM TableName VIEW IndexName
WHERE ...
ORDER BY Knn::DistanceFunction(...)
LIMIT ...
SELECT ...
FROM TableName VIEW IndexName
WHERE ...
ORDER BY Knn::SimilarityFunction(...) DESC
LIMIT ...
Примечание
Векторный индекс не будет автоматически выбран оптимизатором, поэтому его нужно указывать явно с помощью выражения VIEW IndexName
.
Примеры
-
Выбор всех полей из таблицы
series
с использованием векторного индексаviews_index
, созданного дляembedding
с мерой близости "скалярное произведение":SELECT series_id, title, info, release_date, views, uploaded_user_id, Knn::InnerProductSimilarity(embedding, $target) as similarity FROM series VIEW views_index ORDER BY similarity DESC LIMIT 10
-
Выбор всех полей из таблицы
series
с использованием префиксного векторного индексаviews_index2
, созданного дляembedding
с мерой близости "скалярное произведение" и префиксной колонкойrelease_date
:SELECT series_id, title, info, release_date, views, uploaded_user_id, Knn::InnerProductSimilarity(embedding, $target) as similarity FROM series VIEW views_index2 WHERE release_date = "2025-03-31" ORDER BY Knn::InnerProductSimilarity(embedding, $TargetEmbedding) DESC LIMIT 10