Библиотека Python, добавляющая поддержку векторов pgvector и поиска по сходству для Django, SQLAlchemy, Psycopg, asyncpg, Peewee и других драйверов PostgreSQL.
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
Запустите Docker-образ TimescaleDB (см. документацию по установке по ссылке).
- 2
Подключитесь к базе данных с помощью psql.
psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" - 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 обновляется ежедневно.
Похожие проекты
Поддержка расширения pgvector для PostgreSQL в Go: типы векторов и адаптеры для pgx, pg, Bun, Ent, GORM и sqlx.
Qdrant — движок поиска векторов по сходству и векторная база данных на Rust с фильтрацией по payload для семантического поиска и рекомендаций.
Вспомогательная библиотека для JavaScript и TypeScript, добавляющая поддержку типа vector из pgvector в драйверы и ORM для Node.js, Deno и Bun.
Milvus — распределённая векторная база данных с открытым исходным кодом для масштабного хранения эмбеддингов и поиска по ним, подходящая для AI-поиска и RAG-приложений.
Расширение с открытым исходным кодом для поиска векторов по сходству в Postgres: храните эмбеддинги и выполняйте поиск рядом с реляционными данными.