PostgreSQL, BM25 기반의 강력한 전문 검색 기능으로 무장!
Tiger Data에서 PostgreSQL 기반의 BM25 검색 확장 기능(pg_textsearch)을 오픈소스로 출시
ParadeDB 및 Tantivy 대비 쿼리 처리량(Query Throughput)에서 4.7배 우수한 성능을 보임
RAG(Retrieval-Augmented Generation) 시스템 구축에 활용될 수 있다는 기대감이 높음
인덱싱 속도(Indexing Speed) 및 고빈도 업데이트(High-Frequency Updates)에 대한 성능 우려 존재
pg_textsearch의 핵심 아키텍처
pg_textsearch는 BM25 알고리즘(BM25 Algorithm)을 활용하여 텍스트 검색의 정확도를 높인다. 특히, 블록-맥스 WAND(Block-Max WAND) 최적화를 통해 Top-k 쿼리(Top-k Query)의 성능을 향상시켰다. 또한, 병렬 인덱스 빌드(Parallel Index Builds)를 지원하여 대용량 데이터셋에 대한 인덱싱 속도를 개선했다. 이러한 아키텍처는 기존 PostgreSQL의 텍스트 검색 기능의 한계를 극복하고, 고성능 검색 시스템(High-Performance Search System) 구축을 가능하게 한다.
성능 벤치마크 결과 분석
개발자는 MS-MARCO 데이터셋을 활용한 벤치마크를 통해 pg_textsearch의 성능을 검증했다. 벤치마크 결과에 따르면, pg_textsearch는 Parade/Tantivy의 쿼리 처리량을 능가하는 것으로 나타났다. 구체적으로, 4.7배의 쿼리 처리량 우위를 보였다고 한다. 이러한 결과는 AI 기반 개발 도구(AI-boosted Development)와 숙련된 개발자의 결합을 통해 기존의 개발 시간 및 성능 제약(Performance Constraints)을 극복할 수 있음을 시사한다.
커뮤니티의 주요 관심사
커뮤니티에서는 pg_textsearch의 RAG 시스템(Retrieval-Augmented Generation System) 적용 가능성에 주목하고 있다. 특히, 기존 PostgreSQL 환경에서 하이브리드 검색(Hybrid Search)을 구현할 수 있다는 점에 높은 기대를 표명했다. 하지만, 인덱싱 속도와 고빈도 업데이트 환경에서의 성능에 대한 우려도 제기되었다. 또한, GCP, AWS, Supabase 등 클라우드 플랫폼(Cloud Platform)에서의 지원 여부에 대한 관심이 높다.
기술적 한계 및 개선 방향
pg_textsearch는 현재 구문 검색(Phrase Queries) 및 표현식 인덱싱(Expression Indexing)을 지원하지 않는다. 구문 검색의 경우, BM25 랭킹과 후처리(Post-filter)를 결합하는 방식으로 우회할 수 있다. 또한, 지속적인 쓰기 작업(Write-heavy Workloads) 환경에서의 성능 최적화가 과제로 남아있다. 개발자는 향후 백그라운드 컴팩션(Background Compaction) 기능을 추가하여 이러한 문제를 해결할 계획이다.