Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • Cloud Registry
    • SmartCaptcha
    • Cloud Desktop
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for PostgreSQL
KZ
  • Начало работы
    • Все инструкции
      • Управление расширениями
      • pg_cron
      • pg_repack
      • pgaudit
      • pgcrypto
      • postgresql_anonymizer
      • vector
      • Словари от Hunspell для полнотекстового поиска
  • Управление доступом
  • Инспекции и рекомендации
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Установить расширение vector в кластер Yandex Managed Service for PostgreSQL
  • Примеры использования
  • Выполнить векторный поиск
  • Создать индекс
  1. Пошаговые инструкции
  2. Расширения и словари PostgreSQL
  3. vector

Использование vector в Yandex Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Обновлена 15 октября 2026 г.
Открыть в Markdown
  • Установить расширение vector в кластер Yandex Managed Service for PostgreSQL
  • Примеры использования
    • Выполнить векторный поиск
    • Создать индекс

Вы можете хранить векторные данные и выполнять векторный поиск в Yandex Managed Service for PostgreSQL с помощью расширения vector.

Расширение поддерживает:

  • Точный и приблизительный поиск ближайших соседей.
  • Различные типы векторов: одинарной точности, половинной точности, бинарные и разреженные векторы.
  • Несколько метрик сравнения векторов: L2 (евклидово расстояние), косинусное расстояние, скалярное произведение, L1 (манхэттенское расстояние), расстояние Хэмминга и Жаккара.
  • Работу с любым языком программирования, который поддерживает подключение к PostgreSQL.

Векторный поиск можно комбинировать с привычными возможностями PostgreSQL и SQL.

По умолчанию в vector выполняется точный поиск, при котором сравниваются все векторы. Для больших объемов данных можно создавать векторные индексы и использовать приблизительный поиск. В этом случае поиск выполняется быстрее, но результаты могут быть менее точными.

В vector поддерживается два типа индексов:

  • HNSW — организует векторы в структуру данных, которая позволяет быстро переходить от одного похожего вектора к другому и находить ближайших соседей без проверки всей таблицы. В основе этой структуры лежит многослойный граф.
  • IVFFlat — разбивает все векторы на несколько групп (списков). Во время поиска проверяются не все группы, а только те, которые наиболее близки к искомому вектору. По сравнению с HNSW этот индекс строится быстрее и использует меньше памяти, но уступает по качеству и скорости поиска.

Расширение vector доступно в кластерах Managed Service for PostgreSQL версии 13 и выше.

Подробнее о расширении vector читайте в его документации.

Установить расширение vector в кластер Yandex Managed Service for PostgreSQLУстановить расширение vector в кластер Yandex Managed Service for PostgreSQL

Чтобы установить расширение в Managed Service for PostgreSQL, добавьте расширение vector в нужную базу данных.

Примеры использованияПримеры использования

Подробнее об использовании vector в руководстве Выполнение векторного поиска в Yandex Managed Service for PostgreSQL с помощью vector.

Выполнить векторный поискВыполнить векторный поиск

Для получения расстояния в расширении vector используются следующие функции:

  • <-> — расстояние L2 (евклидово расстояние);
  • <#> — отрицательное скалярное произведение;
  • <=> — косинусное расстояние;
  • <+> — расстояние L1 (манхэттенское расстояние);
  • <~> — расстояние Хэмминга (для бинарных векторов);
  • <%> — расстояние Жаккара (для бинарных векторов).

Чтобы найти ближайшие к заданному вектору записи по расстоянию L2, выполните запрос:

SELECT *
FROM <имя_таблицы>
ORDER BY <имя_столбца> <-> '<вектор_запроса>'
LIMIT <количество_результатов>;

Где:

  • <вектор_запроса> — вектор, с которым сравниваются векторы из столбца. Например [3, 1, 2].
  • <количество_результатов> — количество возвращаемых результатов.

Также расширение vector поддерживает следующие поисковые запросы:

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

Пример выполнения этих поисковых запросов приведен в руководстве Выполнение векторного поиска в Yandex Managed Service for PostgreSQL с помощью vector.

Создать индексСоздать индекс

Индексы позволяют ускорить векторный поиск. Для каждой функции расчета расстояния нужно создавать свой индекс HNSW и IVFFlat.

HNSWHNSW

Чтобы создать HNSW-индекс для определенного расстояния, выполните запрос:

CREATE INDEX ON <имя_таблицы>
USING hnsw (<имя_столбца> <тип_расстояния>)
WITH (
m = <число_связей>,
ef_construction = <число_кандидатов>
);

Где:

  • <тип_расстояния> — функция расчета расстояния, например vector_l2_ops. Подробнее в документации расширения vector.

  • m — максимальное количество связей, которое может иметь вершина графа на каждом уровне. По умолчанию — 16.

  • ef_construction — количество кандидатов, рассматриваемых при построении графа. По умолчанию — 64. Чем выше значение, тем выше вероятность найти наиболее подходящие записи, но индекс строится дольше и операции вставки выполняются медленнее.

    Параметры m и ef_construction задаются один раз при создании индекса. Чтобы изменить их значения, пересоздайте индекс.

Чтобы настроить точность поиска, выполните запрос:

SET hnsw.ef_search = <число_векторов>;

Где ef_search — количество векторов, которые алгоритм рассматривает во время поиска. По умолчанию — 40. Чем выше значение, тем выше вероятность найти наиболее похожие записи, но запрос будет выполняться медленнее.

В отличие от параметров индекса m и ef_construction, параметр поиска ef_search можно изменять перед выполнением запросов.

IVFFlatIVFFlat

Чтобы создать IVFFlat-индекс, выполните запрос:

CREATE INDEX ON <имя_таблицы>
USING ivfflat (<имя_столбца> <тип_расстояния>)
WITH (
lists = <число_групп>
);

Где:

  • <тип_расстояния> — функция расчета расстояния, например vector_l2_ops. Подробнее в документации расширения vector.

  • lists — количество групп (списков), на которые будут разделены векторы. Рекомендуемое значение зависит от объема данных. Чем больше групп, тем быстрее поиск, но качество поиска может снизиться.

    Параметр lists задается один раз при создании индекса. Чтобы изменить его значение, пересоздайте индекс.

Чтобы настроить точность поиска, выполните запрос:

SET ivfflat.probes = <число_групп_для_поиска>;

Где probes — количество групп (списков), просматриваемых при выполнении поиска. По умолчанию — 1. Чем больше значение, тем выше вероятность найти наиболее похожие записи, но ниже скорость выполнения запроса.

В отличие от параметра индекса lists, параметр поиска probes можно изменять перед выполнением запросов.

Была ли статья полезна?

Предыдущая
postgresql_anonymizer
Следующая
Словари от Hunspell для полнотекстового поиска
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»