feat(S15P11A705-400): 검색 응답 조립 단계에 결합 신뢰도 게이트를 추가한다 - #210
Merged
Conversation
S1(벡터)·S2(문자열)·S3(키워드) 세 신호 중 S1 하나뿐이고 유사도가 임계값(기본 0.35, ai 레포 S15P11A705-401 재측정 채택값) 미만인 결과를 응답에서 뺀다. S2·S3 중 하나라도 있으면 유사도와 무관하게 남긴다. 게이트는 문자열 병합 직후·Core 재검증 이전에 건다 — 세 신호가 전부 갖춰지는 가장 이른 지점이라 DTO에 신호를 얹지 않고 불필요한 Core 조회도 만들지 않는다 (BD-52). AiSearchResponse.Match에 keywordMatched 필드를 추가해 ai 레포가 이미 계산해 보내는 S3 신호를 받는다. 기본값은 꺼짐 — 검증 게이트 통과 전에는 현행과 동일하다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
검색 결과 중 S1(벡터) 신호 하나뿐이고 유사도가 낮은 결과를 응답에서 제외하는 결합 신뢰도 게이트를 추가한다. S2(문자열)·S3(키워드) 중 하나라도 있으면 유사도와 무관하게 남긴다. 기본값은 꺼짐 — 검증 게이트 통과 전에는 현행과 동일하다.
Jira (필수)
관련 GitHub Issue (선택)
(없음)
변경 사항
ConfidenceGateProperties신설 (pinlog.search.gate.enabled기본 false,similarity-threshold기본 0.35)AiSearchResponse.Match에keywordMatched필드 추가 (ai 레포 S15P11A705-399 응답 수신)RecordSearchService:mergeLexicalMatches가LexicalMergeResult(병합 목록 + 문자열 매치 Record id 집합)를 반환하도록 변경,applyConfidenceGate신설 — 문자열 병합 직후·Core 재검증 이전에 적용application.yml에pinlog.search.gate.*설정 추가BD-52결정 기록(게이트 위치 선택 근거),BI-44구현 리포트, worklog 항목테스트 / 검증
./gradlew clean check --no-daemon— BUILD SUCCESSFULConfidenceGateApiTests6/6,RecordSearchApiTests38/38 (Testcontainers)./gradlew test --no-daemon --tests "com.pinlog.pinlogback.domain.search.*"→ 전체 통과./gradlew clean check --no-daemon→ BUILD SUCCESSFUL (checkstyle·jacoco 포함)리뷰 포인트
keywordMatched가 없거나null이면 다른 필수 필드(recordId 등)와 달리 Match 자체를 버리지 않고 신호 없음(false)으로만 처리한다미결 / 후속
.claude/handoff/SEARCH-UPGRADE-HANDOFF.md는 어디에도 없었음 — BD-52에 기록