Pulse 게시 ·

pgx-bm25 1.0 공개, PostgreSQL 내부 인덱스로 BM25 검색 지원

PGX가 10월 7일 PostgreSQL 17·18용 검색 확장 pgx-bm25 1.0을 공개했다. 별도 검색 엔진 없이 DB 내부 인덱스에서 BM25 관련도순 검색을 수행하며, PostgreSQL의 장애 복구·물리 복제·VACUUM을 활용한다. 다중 필드 가중치와 구문·근접 검색을 지원하고 PostgreSQL 라이선스로 소스를 제공한다.

bm25_native 확장과 인덱스 접근 방식으로 설치한다. 관련도순 쿼리는 별도 Sort 노드 없이 정렬된 인덱스 스캔으로 실행된다.

상위 N개 검색에는 block-max WAND를 사용해 모든 일치 문서의 점수를 계산하는 작업을 줄인다.

BM25F 기반 다중 컬럼 검색을 지원한다. 필드별 가중치와 길이 정규화 설정은 ALTER INDEX로 바꾸면 재색인 없이 다음 스캔부터 적용된다.

정확한 구문, 순서 유무를 지정하는 근접 검색, 중첩 불리언 조건, 접두어 와일드카드와 검색 시점 가중치를 지원한다.

PostgreSQL 19는 현재 베타로 테스트하지만 공식 지원 버전은 아니다. 소스·테스트·벤치마크 스크립트·설계 기록을 공개하며 별도 상용 에디션은 없다.

검색 인덱스를 별도 서비스로 동기화하지 않아도 돼, PostgreSQL 중심 서비스의 검색 운영 구성을 줄일 수 있다.

원문