Расширение PostgreSQL на Rust с индексом на базе DiskANN и фильтрацией по меткам для более быстрого и дешёвого векторного поиска на основе pgvector.
pgvector/pgvector-go
Поддержка расширения pgvector для PostgreSQL в Go: типы векторов и адаптеры для pgx, pg, Bun, Ent, GORM и sqlx.
- Звёзды
- 356
- Форки
- 16
- Открытые issues
- 0
- Последний коммит
- позавчера
Что это?
pgvector-go — библиотека для Go, которая позволяет приложениям хранить векторные эмбеддинги в PostgreSQL и выполнять по ним запросы через расширение pgvector. Она предоставляет типы Go для плотных, half- и разреженных векторов, а также адаптеры для работы с pgx, pg, Bun, Ent, GORM и sqlx.
Библиотека охватывает типовой сценарий работы: подключение расширения, создание столбца с вектором, добавление эмбеддингов и выполнение запросов поиска ближайших соседей с операторами расстояния L2, скалярного произведения и косинусного расстояния. Также в ней показано, как создавать индексы HNSW и IVFFlat для приближённого поиска. Интеграция с Ent включает вспомогательные функции для нескольких метрик расстояния.
Примеры в репозитории охватывают эмбеддинги OpenAI и Cohere, гибридный поиск с Reciprocal Rank Fusion, поиск по разреженным векторам, рекомендации, горизонтальное масштабирование с Citus и массовую загрузку с помощью COPY.
Ключевые возможности
- 01Типы Go для плотных, half- и разреженных векторов
- 02Адаптеры для pgx, pg, Bun, Ent, GORM и sqlx
- 03Запросы поиска ближайших соседей с операторами расстояния L2, скалярного произведения и косинусного расстояния
- 04Примеры создания индексов HNSW и IVFFlat
- 05Примеры работы с OpenAI, Cohere, гибридным поиском и массовой загрузкой с помощью COPY
Сценарии использования
- Добавление семантического поиска или поиска с извлечением данных в Go-сервис на базе PostgreSQL
- Хранение эмбеддингов текста или изображений вместе с реляционными данными
- Создание рекомендаций с ранжированием объектов по сходству векторов
- Эффективная загрузка больших наборов эмбеддингов в PostgreSQL
Быстрый старт
- 1
Установите основной пакет Go
go get github.com/pgvector/pgvector-go - 2
Установите пакет интеграции с pgx
go get github.com/pgvector/pgvector-go/pgx - 3
Включите расширение pgvector в PostgreSQL
CREATE EXTENSION IF NOT EXISTS vector
Что важно знать
- Требуется PostgreSQL с установленным на сервере расширением pgvector.
В подборках
Темы
Частые вопросы
- Что такое pgvector-go?
- Поддержка расширения pgvector для PostgreSQL в Go: типы векторов и адаптеры для pgx, pg, Bun, Ent, GORM и sqlx. pgvector-go — библиотека для Go, которая позволяет приложениям хранить векторные эмбеддинги в PostgreSQL и выполнять по ним запросы через расширение pgvector. Она предоставляет типы Go для плотных, half- и разреженных векторов, а также адаптеры для работы с pgx, pg, Bun, Ent, GORM и sqlx.
- pgvector-go можно использовать бесплатно? Какая у него лицензия?
- pgvector-go распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pgvector-go всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pgvector-go — 5 нояб. 2026 г..
- Для чего можно использовать pgvector-go?
- Добавление семантического поиска или поиска с извлечением данных в Go-сервис на базе PostgreSQL Хранение эмбеддингов текста или изображений вместе с реляционными данными Создание рекомендаций с ранжированием объектов по сходству векторов Эффективная загрузка больших наборов эмбеддингов в PostgreSQL
- Как установить pgvector-go?
- Установите основной пакет Go: go get github.com/pgvector/pgvector-go Установите пакет интеграции с pgx: go get github.com/pgvector/pgvector-go/pgx Включите расширение pgvector в PostgreSQL: CREATE EXTENSION IF NOT EXISTS vector
- Где скачать pgvector-go?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pgvector/pgvector-go
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека Python, добавляющая поддержку векторов pgvector и поиска по сходству для Django, SQLAlchemy, Psycopg, asyncpg, Peewee и других драйверов PostgreSQL.
Вспомогательная библиотека для JavaScript и TypeScript, добавляющая поддержку типа vector из pgvector в драйверы и ORM для Node.js, Deno и Bun.
Milvus — распределённая векторная база данных с открытым исходным кодом для масштабного хранения эмбеддингов и поиска по ним, подходящая для AI-поиска и RAG-приложений.
Qdrant — движок поиска векторов по сходству и векторная база данных на Rust с фильтрацией по payload для семантического поиска и рекомендаций.
Расширение с открытым исходным кодом для поиска векторов по сходству в Postgres: храните эмбеддинги и выполняйте поиск рядом с реляционными данными.