Full-Text Search with DuckDB
Author: Pete Doherty | Source: peterdohertys.website | Published: 2026-04-29
한 줄 요약
DuckDB의 FTS 확장을 활용하여 비정형 텍스트 데이터(이메일 등)에 대한 전문 검색을 빠르게 구축하는 실습 가이드.
핵심 주장/내용
- DuckDB FTS 확장은 Okapi BM25 알고리즘 기반으로 stemming, stop words, accent stripping 지원
k₁파라미터로 용어 빈도 가중치,b파라미터로 문서 길이 정규화를 조절하여 랭킹 튜닝- Elasticsearch·Postgres 대비 기능은 제한적(phrase query, highlight, synonym 미지원)이나 탐색적 용도에 충분
- 13,000+ 이메일 코퍼스에서 JSON 전처리 → DuckDB 임포트 → FTS 인덱스 생성까지 수분 내 완료
- 향후 벡터 검색 확장도 기대
주요 수치 / 사실
PRAGMA create_fts_index한 줄로 인덱스 생성conjunctive := 1로 AND 조건 검색 가능- b=0 → 문서 길이 무시, b=1 → 긴 문서 패널티 / k₁ 낮으면 존재 여부만, 높으면 빈도 반영
관련 위키
Source: 원문 보기