출처

개요

pgContext는 PostgreSQL 내부에 벡터 검색과 하이브리드 검색 기능을 추가하는 PostgreSQL 17·18용 확장입니다. 별도의 벡터 데이터베이스로 원본 데이터를 복제하지 않고, PostgreSQL 테이블·MVCC·ACL·RLS·백업·복제 체계를 그대로 활용하는 것을 목표로 합니다. 밀집 벡터 검색, HNSW 기반 근사 검색, 메타데이터 필터링, 전문 검색과의 하이브리드 검색을 제공합니다. 근사 검색 결과를 원본 행으로 되돌아가 PostgreSQL의 가시성·권한 규칙과 함께 재검증하는 방식이 핵심입니다. 원문에 소개된 자체 벤치마크에서는 특정 환경과 설정에서 pgvector보다 낮은 지연 시간과 높은 재현율을 보였지만, 이는 해당 벤치마크 조건에 한정된 결과입니다.

핵심 포인트

  • PostgreSQL 17·18에서 동작하는 Rust 기반 확장으로, CREATE EXTENSION pgcontext; 명령으로 활성화할 수 있습니다.
  • 정확 검색과 HNSW 기반 근사 검색을 지원하며, L2·내적·코사인·L1 거리 함수를 제공합니다.
  • PostgreSQL 컬럼과 JSONB 경로를 등록해 must, should, must_not, 동등 비교, 범위 조건, is_null, is_empty 등의 필터를 사용할 수 있습니다.
  • 필터를 검색 후처리가 아니라 ANN 탐색 과정의 일부로 처리하며, 선택적인 필터에서도 재현율 저하를 줄이도록 설계되었습니다.
  • 검색·카운트·패싯·그룹핑이 동일한 필터 문법을 공유하고, 결과는 MVCC 가시성 및 ACL/RLS 검증을 거칩니다.
  • 원문 벤치마크에서는 GloVe-100-angular 데이터셋과 Apple M4 Pro 환경에서 pgContext가 pgvector보다 3.8~5.3배 낮은 질의 지연 시간을 기록했다고 보고합니다.
  • Apache-2.0 라이선스로 공개되어 있으며, Docker 이미지와 소스 빌드·PGXN 설치 방법이 제공됩니다. macOS용 Homebrew 패키징은 원문 작성 시점에 준비 중입니다.

왜 중요한가

PostgreSQL을 이미 운영 중인 애플리케이션은 벡터 검색을 도입할 때 별도의 검색 시스템과 데이터 동기화·권한·백업 체계를 추가해야 하는 부담이 있습니다. pgContext는 벡터와 메타데이터를 PostgreSQL 안에 유지하면서 기존 데이터베이스의 보안 및 트랜잭션 모델을 활용하려는 대안입니다. 특히 테넌트·권한·상태·날짜 같은 조건을 벡터 검색과 함께 적용해야 하는 RAG, 문서 검색, 에이전트 지식베이스에서 검토할 만한 접근입니다. 다만 실제 도입 전에는 사용하는 데이터 규모, 필터 선택도, 재현율 목표, 동시성, 운영 환경을 기준으로 pgvector·Qdrant 등과 직접 비교해야 합니다.

후속으로 볼 링크와 키워드

관련 위키

원문 보존 위치

원문 전체는 2026-07-25-pytorchkr-topic-11397-pgcontext-postgresql-aisource_url 및 HTML 원문과 함께 저장되어 있습니다.