전문(full-text) 검색

LIKE '%키워드%'로 검색해봤다면 금방 한계를 느꼈을 거예요. 단어의 형태(원형, 굴절, 동의어)를 고려하지 못하고, 검색 결과의 관련도(rank)도 매기기 어렵죠. PostgreSQL의 **Full Text Search(FTS, 전문 검색)**는 그런 검색을 데이터베이스 안에서 제대로 처리해주는 기능이에요. 열(column) 또는 데이터베이스 전반을 대상으로 자연어 검색을 수행하는 방법을 제공한답니다.

출처: PostgreSQL 공식 문서 — textsearch

개요 (Overview)

이 장에서는 PostgreSQL이 제공하는 전문 검색(full text search) 기능 전체를 다뤄요. 렉셈(lexeme) 단위로 문서를 쪼개고, 형태소 분석과 스톱워드(stop words) 처리를 거쳐 검색을 준비하고, 마지막으로 관련성 순위(ranking)까지 매기는 흐름을 하나씩 살펴볼게요.

내용은 크게 아래 하위 주제로 나뉘어요.

소개 (Introduction)

테이블과 인덱스 (Tables and Indexes)

추가 기능 (Additional Features)

파서와 사전 (Parsers and Dictionaries)

설정, 테스트, 인덱스, psql, 한계 (Config, Testing, Indexes, psql, Limitations)

더 알아보기 (Learn more)