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: 원문 보기