Posts
1. 검색의 중요성:
read more
PostgreSQL Full Text Search를 활용한 강력한 검색 기능 구현하기
1. 검색의 중요성: LIKE %keyword%의 한계
데이터가 많아질수록 데이터베이스의 LIKE 연산자는 성능 저하의 주범이 됩니다. 인덱스를 탈 수 없기 때문입니다. 하지만 별도의 검색 엔진(Elasticsearch 등)을 도입하기 부담스러운 규모라면, PostgreSQL이 제공하는 **Full Text Search(FTS)**는 매우 훌륭한 대안이 됩니다.
2. PostgreSQL FTS의 핵심 개념
- tsvector: 검색 대상이 되는 텍스트를 단어 단위로 쪼개어(Lexemes) 저장하는 전용 타입.
- tsquery: 검색어에 대한 논리 연산(AND, OR, NOT 등)을 수행하는 타입.
- GIN Index:
tsvector전용 인덱스로, 대규모 데이터에서도 빠른 검색 속도를 보장.
3. 기본 검색 쿼리 예제
문장에서 특정 단어를 찾는 가장 단순한 형태입니다.