diff --git a/journey/research/rag/260323_한국어_키워드검색_근본해결_MeCab_vs_pg_trgm_리서치.md b/journey/research/rag/260323_한국어_키워드검색_근본해결_MeCab_vs_pg_trgm_리서치.md index b716499..b4017b0 100644 --- a/journey/research/rag/260323_한국어_키워드검색_근본해결_MeCab_vs_pg_trgm_리서치.md +++ b/journey/research/rag/260323_한국어_키워드검색_근본해결_MeCab_vs_pg_trgm_리서치.md @@ -85,6 +85,28 @@ PostgreSQL `simple` 토크나이저의 한국어 구조적 한계. 공백 기준 **결론: pg_trgm을 키워드 축으로 추가하고 기존 RRF에 편입. MeCab-ko는 도입하지 않는다.** +## pg_trgm의 2026년 위상 — LLM 시대에서의 생존 근거 + +LLM(벡터 검색)이 '의미'를 찾는 레이더라면, pg_trgm은 '철자'를 긁어모으는 저인망 그물이다. + +### 왜 LLM에 잠식되지 않았나 + +1. **고유명사 실종 방지**: LLM은 "아크로셀"을 검색하면 "바이오 셀", "나노 셀" 등 의미 유사 결과를 가져올 수 있다. pg_trgm은 `[아크, 크로, 로셀]` 글자 조각만 보므로 정확한 그 단어를 물리적으로 매칭한다. +2. **결정론적 신뢰성**: AI는 확률로 답하지만 pg_trgm은 규칙으로 답한다. "왜 이 결과가 안 나오나?"에 인덱스 구조로 명확히 설명 가능. +3. **Edge Case 처리**: 일련번호("A-123-X"), 투자조합 번호, 코드 검색에서 LLM은 거의 무용지물. 23서버의 고유명사 0건 이슈를 해결할 유일한 열쇠. +4. **가성비**: 수만 건 데이터를 매번 임베딩하는 것보다 pg_trgm 인덱스 하나로 1차 필터링하는 것이 운영 비용 면에서 압도적 유리. + +### 2026년 하이브리드 검색 표준에서의 역할 + +| 구분 | 벡터 검색 (pgvector) | Trigram 검색 (pg_trgm) | +|------|---------------------|----------------------| +| 핵심 가치 | 문맥·의미 파악 (Semantic) | 오타 교정·부분 일치 (Lexical) | +| 역할 | "주주총회 의제" 관련 내용 찾기 | "아크로셀" 고유명사 강제 매칭 | +| 비용/속도 | 높음 (임베딩 API 비용) | 매우 낮음 (로컬 CPU) | +| 결과 보장 | 유사도 낮으면 결과가 산으로 감 | 0건 사태를 방지하는 최후의 수단 | + +**로빙에 대입하면**: pgvector는 검색의 '뇌', pg_trgm은 검색의 '눈'과 '귀'. 23서버의 0건 이슈는 뇌의 문제가 아니라 눈이 나빠서(토크나이저 한계) 단어를 못 본 것이다. + ## Unresolved - pg_trgm 인덱스 크기가 3,474 → 5만 청크 확장 시 어느 수준인지