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명)로 확장

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