joungmin
9c2dc9f43a
fix(search): #293 검색/벡터 결함 7건 일괄 수정
- SearchController: q 빈값 가드 (HTTP 400) — '%%' LIKE 응답 폭발 차단
- SearchService:
- keywordSearch: LIKE 와일드카드 escape (%, _, \\)
- hybrid 모드: semantic 결과에도 attachChannels 호출 (이전: keyword만)
- ObjectMapper/TypeReference static 재사용 (캐시 hit 경로 GC 압박 완화)
- 알 수 없는 mode → warn 로그 + keyword fallback (이전: silent)
- maxDistance를 @Value("${app.search.max-distance:0.57}")로 외부화
- SearchMapper.xml: LIKE 절에 ESCAPE '\\' 추가
- VectorService.searchSimilar: embeddings/first list null/empty 가드 (NPE 방지)
- application.yml: app.search.max-distance (env SEARCH_MAX_DISTANCE) 추가
후속 분리: batch insert + 테스트 (별도 후속 이슈)
Refs: #293