4개의 글
2026-03-19
검색 스코어링 튜닝 삽질기 — 35%가 최대였던 검색을 100%까지 올린 과정
ts_rank 스케일 불일치, BM25 정규화 범위 측정, 제목 부스트, SQL vs JS 정렬 불일치까지. 검색 점수가 이상하게 나올 때 확인해야 할 것들.
PostgreSQLpg_searchBM25pgvector검색스코어링성능최적화
2026-03-18
RAG 챗봇의 검색 품질을 개선한 이야기 — 벡터만으론 부족했다
벡터 검색만으로 운영하던 RAG 챗봇에 BM25 리랭킹, 청킹 오버랩, 시스템 프롬프트 분리를 적용한 과정. 자연어 쿼리에서 BM25 노이즈를 어떻게 처리했는지까지.
RAGpgvectorpg_searchBM25OpenAIGroq챗봇Next.js
2026-03-17
블로그 검색에 GIN 인덱스를 적용해봤다 — 정확도도, 속도도 달라졌다
ILIKE에서 GIN + ts_rank로, 다시 pg_search BM25 + pgvector 하이브리드로. 검색 엔진 3단계 진화 과정과 각 단계의 벤치마크.
PostgreSQLpg_searchBM25pgvector쿼리튜닝EXPLAIN인덱스성능최적화
2026-03-09
블로그 검색에 임베딩 기반 벡터 유사도를 도입한 이야기
LIKE 검색의 한계를 넘어 OpenAI 임베딩과 pgvector, pg_search BM25를 결합한 하이브리드 검색을 구현한 과정. 청킹 오버랩, 스코어링 중앙화, 제목 부스트까지.
임베딩벡터 검색pgvectorpg_searchBM25OpenAINext.jsPostgreSQL