검색 로직을 services/search/* 모듈로 분리. trigram 도입은 Phase 1.2 인덱스와 함께.
신규:
- services/search/{__init__,retrieval_service,rerank_service,query_analyzer,evidence_service,synthesis_service}.py
- retrieval_service는 search_text/search_vector 이전 (ILIKE 동작 그대로)
- 나머지는 Phase 1.3/2/3 placeholder
이동:
- services/search_fusion.py → services/search/fusion_service.py (R100)
수정:
- api/search.py — thin orchestrator로 축소 (251줄 → 178줄)
동작 변경 없음 — 구조만 분리. 회귀 검증 후 Phase 1.2 진입.
12 lines
511 B
Python
12 lines
511 B
Python
"""Search service 모듈 — Phase 1.1 분리.
|
|
|
|
검색 파이프라인의 각 단계를 모듈로 분리해 디버깅/테스트/병목 추적을 용이하게 한다.
|
|
|
|
- retrieval_service: text/vector/trigram 후보 수집
|
|
- fusion_service: RRF / weighted-sum / boost (Phase 0.5에서 이동)
|
|
- rerank_service: bge-reranker-v2-m3 통합 (Phase 1.3)
|
|
- query_analyzer: 자연어 쿼리 분석 (Phase 2)
|
|
- evidence_service: evidence extraction (Phase 3)
|
|
- synthesis_service: grounded answer synthesis (Phase 3)
|
|
"""
|