Repolode
timescale

timescale/pgvectorscale

Расширение PostgreSQL на Rust с индексом на базе DiskANN и фильтрацией по меткам для более быстрого и дешёвого векторного поиска на основе pgvector.

Open source альтернатива:Pinecone

Звёзды
3,161
Форки
160
Открытые issues
19
Последний коммит
24 дня назад

Что это?

pgvectorscale — это расширение PostgreSQL, которое работает вместе с pgvector — open-source расширением для работы с векторами — и ускоряет приближённый поиск ближайших соседей по столбцам с эмбеддингами. Оно добавляет тип индекса StreamingDiskANN, разработанный на основе исследований Microsoft по DiskANN, а также сжатый формат хранения на базе Statistical Binary Quantization.

Расширение также поддерживает фильтрацию векторного поиска по меткам: запросы могут сочетать ранжирование по сходству с фильтрами пересечения массивов в столбце типа smallint[]. Поддерживаются и произвольные условия WHERE, но они применяются после векторного поиска. Доступны расстояния Cosine, L2 и inner product — для них используются те же операторы, что и в pgvector.

Проект написан на Rust с использованием фреймворка PGRX, а не на C. Его можно запустить из готового Docker-образа или собрать из исходного кода; кроме того, расширение доступно в Timescale Cloud.

Ключевые возможности

  • 01Добавляет индекс StreamingDiskANN для столбцов с эмбеддингами в pgvector.
  • 02Использует Statistical Binary Quantization для сжатого хранения векторов.
  • 03Поддерживает фильтрацию поиска по меткам с помощью оператора пересечения массивов &&.
  • 04Поддерживает операторы расстояния Cosine, L2 и inner product, совместимые с pgvector.
  • 05Позволяет настраивать параметры сборки индекса и выполнения запросов, балансируя точность и скорость.

Сценарии использования

  • Выполнение семантического поиска или извлечения данных для RAG в существующей базе PostgreSQL.
  • Снижение затрат на хранение больших коллекций эмбеддингов (десятки миллионов векторов) за счёт самостоятельного размещения в Postgres.
  • Фильтрация результатов поиска ближайших соседей по меткам категорий или условиям метаданных.

Быстрый старт

  1. 1

    Запустите Docker-образ TimescaleDB (см. документацию по установке по ссылке).

  2. 2

    Подключитесь к базе данных с помощью psql.

    psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>"
  3. 3

    Создайте расширение pgvectorscale (CASCADE также установит pgvector).

    CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;

Что важно знать

  • Из-за нерешённой проблемы сборка из исходного кода не поддерживается на компьютерах Mac с процессором Intel (x86).
  • Для установки из исходного кода необходимы инструментарий Rust и настройка сборки cargo-pgrx.

В подборках

Темы

Частые вопросы

Что такое pgvectorscale?
Расширение PostgreSQL на Rust с индексом на базе DiskANN и фильтрацией по меткам для более быстрого и дешёвого векторного поиска на основе pgvector. pgvectorscale — это расширение PostgreSQL, которое работает вместе с pgvector — open-source расширением для работы с векторами — и ускоряет приближённый поиск ближайших соседей по столбцам с эмбеддингами. Оно добавляет тип индекса StreamingDiskANN, разработанный на основе исследований Microsoft по DiskANN, а также сжатый формат хранения на базе Statistical Binary Quantization.
pgvectorscale можно использовать бесплатно? Какая у него лицензия?
pgvectorscale распространяется с открытым исходным кодом под лицензией PostgreSQL. Перед использованием в коммерческих продуктах проверьте условия лицензии.
pgvectorscale всё ещё поддерживается?
Активно поддерживается. Последний коммит в pgvectorscale — 14 окт. 2026 г..
Для чего можно использовать pgvectorscale?
Выполнение семантического поиска или извлечения данных для RAG в существующей базе PostgreSQL. Снижение затрат на хранение больших коллекций эмбеддингов (десятки миллионов векторов) за счёт самостоятельного размещения в Postgres. Фильтрация результатов поиска ближайших соседей по меткам категорий или условиям метаданных.
Как установить pgvectorscale?
Запустите Docker-образ TimescaleDB (см. документацию по установке по ссылке). Подключитесь к базе данных с помощью psql.: psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" Создайте расширение pgvectorscale (CASCADE также установит pgvector).: CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
Где скачать pgvectorscale?
Исходный код и инструкции по установке — на GitHub: https://github.com/timescale/pgvectorscale

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Milvus — распределённая векторная база данных с открытым исходным кодом для масштабного хранения эмбеддингов и поиска по ним, подходящая для AI-поиска и RAG-приложений.

46,6 тыс.+70 за неделю4,3 тыс.GoApache-2.0Активно поддерживаетсяОбновлён 21 час назад

Расширение с открытым исходным кодом для поиска векторов по сходству в Postgres: храните эмбеддинги и выполняйте поиск рядом с реляционными данными.

23,6 тыс.+67 за неделю1,4 тыс.COtherАктивно поддерживаетсяОбновлён 3 дня назад