Skip to content

검색 자동완성 별칭 치환·초성 매칭 오작동 수정 #320

Description

@GulSam00

문제

검색창 자동완성(utils/getArtistAlias.ts + hooks/useSearchSong.ts)에서 별칭을 정확히 입력해도 검색이 실패하는 경우가 있다.

① 별칭이 2개 이상 걸리면 정확히 입력해도 치환이 안 된다

치환 조건이 autoCompleteList.length === 1이라, 같은 아티스트의 별칭끼리 접두가 겹치면 후보가 2개가 되어 치환을 건너뛴다.

  • "원오크""원오크락"·"원오크" 둘 다 걸려 후보 2개 → 치환 없음
  • ONE OK ROCK은 라틴 표기라 artist_ko가 비어 있어, 치환 없이 %원오크%로는 검색 결과 0건
  • "라르크"(→ "라르크 앙 시엘"·"라르크")도 동일

② 초성 검색이 이름 중간 공백에서 끊긴다

getChoseong('요네즈 켄시') === 'ㅇㄴㅈ ㅋㅅ'로 공백이 남는데, 사람은 초성을 붙여 친다('ㅇㄴㅈㅋㅅ'). startsWith 비교가 공백에서 실패한다. 전사된 일본 아티스트명은 대부분 "성 이름" 꼴이라 거의 전부 해당된다.

③ 공백만 입력하면 무관한 후보 10개가 뜬다

normalizedQuery가 빈 문자열이 되어 모든 후보가 startsWith('')를 통과한다.

작업 체크리스트

  • 후보 개수 대신 정확 일치 탐색으로 치환 판정
  • 초성 비교 시 양쪽 공백 제거 (라벨의 소문자형·초성형은 후보 생성 시 미리 계산)
  • 공백만 입력한 경우 빈 목록 반환
  • useDeferredValue 제거 — 목록이 한 박자 늦어 handleSearch의 치환 판정과 어긋난다
  • handleSearch의 미사용 파라미터(termOverride, typeOverride) 제거

남은 작업 (이 이슈 범위 밖)

  • artistAlias에 곡 제목이 별칭으로 섞여 있다("프리텐더", "나이트댄서", "우세와" 등). 치환되면 곡 검색이 아티스트 전곡 검색으로 바뀌고, 드롭다운에 아티스트/곡 구분이 없다. 사전을 배치(packages/crawling)와 공유하므로 영향 확인 후 별도 처리 예정
  • 자동완성 범위를 artistAlias 71명에서 /api/artists/search(13,869명)로 확장

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions