pgvector에 DiskANN 기반 인덱스와 라벨 필터링을 추가해 벡터 검색을 더 빠르고 저렴하게 만드는 Rust 기반 Postgres 확장입니다.
pgvector/pgvector-go
pgvector PostgreSQL 확장을 위한 Go 지원 라이브러리로, pgx, pg, Bun, Ent, GORM, sqlx용 벡터 타입과 헬퍼를 제공합니다.
- 스타
- 356
- 포크
- 16
- 열린 이슈
- 0
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
pgvector-go는 애플리케이션에서 pgvector 확장을 통해 PostgreSQL에 벡터 임베딩을 저장하고 조회할 수 있도록 해주는 Go 라이브러리입니다. dense vector, half vector, sparse vector용 Go 타입을 제공하며, 이 타입을 pgx, pg, Bun, Ent, GORM, sqlx에서 바로 사용할 수 있도록 어댑터도 제공합니다.
확장 활성화, 벡터 컬럼 정의, 임베딩 삽입, L2·내적·코사인 거리 연산자를 사용한 최근접 이웃 쿼리까지 일반적인 작업 흐름을 다룹니다. 근사 검색을 위한 HNSW 또는 IVFFlat 인덱스 생성 방법도 소개합니다. Ent 통합에는 여러 거리 함수를 위한 헬퍼가 포함되어 있습니다.
저장소의 예제에서는 OpenAI와 Cohere 임베딩, Reciprocal Rank Fusion을 활용한 하이브리드 검색, sparse 검색, 추천, Citus 수평 확장, COPY를 이용한 대량 로드를 다룹니다.
핵심 기능
- 01dense, half, sparse vector용 Go 타입
- 02pgx, pg, Bun, Ent, GORM, sqlx용 어댑터
- 03L2, 내적, 코사인 거리 연산자를 사용한 최근접 이웃 쿼리
- 04HNSW 및 IVFFlat 인덱스 생성 예제
- 05OpenAI, Cohere, 하이브리드 검색, COPY를 이용한 대량 로드 예제
활용 사례
- PostgreSQL을 사용하는 Go 서비스에 시맨틱 검색 또는 검색 증강 기능 추가
- 텍스트 또는 이미지 임베딩을 관계형 데이터와 함께 저장
- 벡터 유사도로 항목의 순위를 매기는 추천 기능 구축
- 대규모 임베딩 데이터셋을 PostgreSQL에 효율적으로 적재
빠른 시작
- 1
핵심 Go 패키지를 설치합니다
go get github.com/pgvector/pgvector-go - 2
pgx 통합 패키지를 설치합니다
go get github.com/pgvector/pgvector-go/pgx - 3
PostgreSQL에서 pgvector 확장 기능을 활성화합니다
CREATE EXTENSION IF NOT EXISTS vector
사용 전 알아둘 점
- 서버에 pgvector 확장 기능이 설치된 PostgreSQL이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pgvector-go은(는) 무엇인가요?
- pgvector PostgreSQL 확장을 위한 Go 지원 라이브러리로, pgx, pg, Bun, Ent, GORM, sqlx용 벡터 타입과 헬퍼를 제공합니다. pgvector-go는 애플리케이션에서 pgvector 확장을 통해 PostgreSQL에 벡터 임베딩을 저장하고 조회할 수 있도록 해주는 Go 라이브러리입니다. dense vector, half vector, sparse vector용 Go 타입을 제공하며, 이 타입을 pgx, pg, Bun, Ent, GORM, sqlx에서 바로 사용할 수 있도록 어댑터도 제공합니다.
- pgvector-go은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pgvector-go은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pgvector-go은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pgvector-go의 마지막 커밋은 2026년 11월 5일입니다.
- pgvector-go은(는) 어디에 사용할 수 있나요?
- PostgreSQL을 사용하는 Go 서비스에 시맨틱 검색 또는 검색 증강 기능 추가 텍스트 또는 이미지 임베딩을 관계형 데이터와 함께 저장 벡터 유사도로 항목의 순위를 매기는 추천 기능 구축 대규모 임베딩 데이터셋을 PostgreSQL에 효율적으로 적재
- pgvector-go는 어떻게 설치하나요?
- 핵심 Go 패키지를 설치합니다: go get github.com/pgvector/pgvector-go pgx 통합 패키지를 설치합니다: go get github.com/pgvector/pgvector-go/pgx PostgreSQL에서 pgvector 확장 기능을 활성화합니다: CREATE EXTENSION IF NOT EXISTS vector
- pgvector-go은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pgvector/pgvector-go
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Django, SQLAlchemy, Psycopg, asyncpg, Peewee 및 기타 PostgreSQL 드라이버에 pgvector 벡터 타입과 유사도 검색 기능을 제공하는 Python 라이브러리입니다.
Node.js, Deno, Bun의 데이터베이스 클라이언트와 ORM에서 pgvector 벡터 타입을 지원하는 JavaScript 및 TypeScript 헬퍼 라이브러리입니다.
Milvus는 임베딩을 대규모로 저장하고 검색하는 오픈소스 분산 벡터 데이터베이스로, AI 검색 및 RAG 애플리케이션에 사용됩니다.
Qdrant는 시맨틱 검색과 추천을 위한 Rust 기반 벡터 유사도 검색 엔진이자 페이로드 필터링을 지원하는 벡터 데이터베이스입니다.
관계형 데이터와 함께 임베딩을 저장하고 쿼리할 수 있는 Postgres용 오픈 소스 벡터 유사도 검색 확장 프로그램입니다.