DB 소식 · 2026.10.13
PostgreSQL pgx-bm25 1.0 출시: 설치·BM25 검색 SQL·지원 버전 총정리
pgx-bm25 1.0의 PostgreSQL 17·18 지원, bm25_native 인덱스 설치와 검색 연산자, 운영 주의점 및 pg_search와 차이를 공식 자료로 정리합니다.

pgx-bm25 1.0은 무엇이며 기본 기능일까?
PostgreSQL pgx-bm25는 PostgreSQL 기본 내장 기능이 아닌 별도 C 확장입니다. PGX가 2026년 10월 7일 버전 1.0을 발표했고, PostgreSQL BM25 검색을 인덱스 접근 방식으로 구현합니다. 일반 전문 검색과 달리 BM25 관련성 점수를 이용한 순위 정렬을 지원하도록 설계됐습니다. [F01][F02]
지원 버전: PostgreSQL 17 BM25와 PostgreSQL 18 BM25
공식 지원 대상은 PostgreSQL 17과 18입니다. 19 베타를 시험하고 있다는 설명이 있지만 안정 지원 대상으로 발표된 것은 아닙니다. 운영 서버는 확장과 서버 메이저 버전을 먼저 맞춰야 합니다. [F03]

pgx-bm25 설치 방법과 bm25_native 인덱스
pgx-bm25 설치 방법은 소스 저장소를 받고 PostgreSQL 서버 개발 헤더와 C 컴파일러, pg_config가 준비된 환경에서 make, sudo make install을 실행한 뒤 데이터베이스에서 CREATE EXTENSION bm25_native를 수행하는 흐름입니다. 관리형 DB에서는 확장 설치 허용 여부를 별도로 점검해야 합니다. [F04][F07]

pgx-bm25 SQL 예제와 pgx-bm25 검색 연산자
아래 pgx-bm25 SQL 예제는 공식 발표문에 제시된 방식입니다. bm25_native 인덱스를 만든 뒤 @@@ 로 매칭하고 &@@ 로 관련성 순위 정렬합니다. 순위 인덱스 스캔을 활용하려면 WHERE와 ORDER BY를 함께 구성하는 점이 핵심입니다. [F04][F05]
CREATE EXTENSION bm25_native;
CREATE INDEX docs_bm25 ON docs USING bm25_native (body);
SELECT id, bm25_score(ctid) AS score
FROM docs
WHERE body @@@ 'quick fox'
ORDER BY body &@@ 'quick fox'
LIMIT 10;예시는 docs(body) 테이블이 존재한다는 가정이며, 실행 환경에 맞춰 변경해야 합니다.
PostgreSQL BM25 검색 성능과 운영 제약
PostgreSQL BM25 검색 성능은 쿼리 패턴·문서 길이·데이터 규모·설정에 좌우됩니다. 개발사는 인덱스 페이지, WAL, 충돌 복구, 물리 복제, VACUUM과의 통합을 설명하지만 독립 벤치마크 검증 결과로 간주해서는 안 됩니다. 자체 데이터로 EXPLAIN ANALYZE 및 회귀 테스트가 필요합니다. [F06]
PostgreSQL BM25 불리언 검색과 기능 범위
PostgreSQL BM25 불리언 검색 외에도 정확한 구절, 근접, 접두 검색과 강조 스니펫을 제공한다고 안내합니다. 검색 사용자 입력은 안전한 쿼리 생성 함수의 파라미터로 전달하고, 실제 구문은 공식 문서에서 확인하세요. [F08]
pgx-bm25 pg_search 차이와 선택 기준
pgx-bm25 pg_search 차이는 프로젝트 자체부터 구분해야 합니다. pgx-bm25는 PGX의 독립 프로젝트이며 ParadeDB의 pg_search와 동일한 확장이 아닙니다. 설치 경로·라이선스·연산자·인덱스 구조를 섞지 말고 각 프로젝트 문서를 기준으로 선택해야 합니다. [F09]
자주 묻는 질문
pgx-bm25 1.0은 어떤 기능이며 PostgreSQL 기본 기능인가?
PGX는 2026년 10월 7일 pgx-bm25 1.0 출시를 PostgreSQL 뉴스에 게시했다. pgx-bm25는 PostgreSQL 서버에 별도로 설치하는 확장으로, PostgreSQL 코어에 기본 내장된 BM25 기능이 아니다.
pgx-bm25를 설치할 수 있는 PostgreSQL 버전은?
공식 지원 PostgreSQL 버전은 17과 18이며, PostgreSQL 19 베타는 시험 중이나 지원 대상으로 선언되지 않았다.
BM25 인덱스 생성과 검색 SQL은 어떻게 작성하나?
확장명과 인덱스 접근 방식은 bm25_native이며 CREATE EXTENSION bm25_native 및 USING bm25_native로 설정한다. 검색 연산자 @@@는 매칭, &@@는 순위를 표현하고, 랭킹 인덱스 스캔에는 WHERE 매칭 조건과 ORDER BY 순위 조건을 함께 사용하는 것이 중요하다.
pgx-bm25 확장의 운영 및 설치 조건은 무엇인가?
확장은 PostgreSQL 인덱스 페이지를 사용하여 WAL·복구·물리 복제 및 VACUUM을 활용한다고 개발사가 설명한다. 설치에는 PostgreSQL 서버 개발 헤더와 C 빌드 도구, pg_config가 필요하며 make 및 make install 절차를 안내한다.
문구·불리언·근접 검색을 지원하나?
구문은 정확한 구, 근접, 불리언, 접두 검색과 스니펫을 지원한다고 공식 자료가 설명한다.
ParadeDB pg_search와 같은 확장인가?
pgx-bm25와 ParadeDB의 pg_search는 별개 프로젝트이며 이름이나 라이선스 및 설치 절차를 혼동해서는 안 된다.


