You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#92 (약품 검색 품질 개선)의 후속 과제. 현재 ngram/edge_ngram 기반 검색은 약품명을 통짜 토큰으로 다루기 때문에 타이래놀처럼 중간 음절이 틀린 오타(레→래)는 거의 못 잡는다. Elasticsearch nori 형태소 분석기를 붙여 약품명을 형태소 단위로 분해하면 중간 오타도 fuzzy 매칭으로 잡을 수 있다.
nori 플러그인은 기본 Elasticsearch 8.x 이미지에 없어 커스텀 Docker 이미지가 필요하다. (로컬 개발 환경만 대상 — prod는 서버가 내려가 있어 이번 작업 범위에서 제외)
✅ To-do
analysis-nori 플러그인을 설치하는 커스텀 ES Dockerfile 작성, docker-compose.yml local ES 서비스에 반영
drug-info-settings.json에 nori_tokenizer 기반 analyzer 추가
DrugDocument.itemName에 .nori 서브필드 추가
DrugSearchRepository 검색 쿼리에 nori 필드 should절 추가
scripts/drug-search-bench.py에 중간 음절 오타 테스트 케이스 추가, before/after 재측정
재색인 후 로컬 기동 확인
📒 기타
관련 문서: docs/kangcheolung/issue-92-search-quality.md "알려진 한계" / "6. 후속"
로컬 실험 결과 nori는 일부 중간 음절 오타만 잡고(예: 타이래놀) 사전에 없는 브랜드명 vs 사전에 있는 단어의 토큰 경계 불일치로 완전히 실패하는 케이스도 있음(예: 이지연↔이지엔). 완전한 해결은 커스텀 사용자 사전까지 필요해 범위가 커져서 이번엔 되돌리고 보류. 필요시 재오픈.
Activity
kangcheolung commentedon Sep 23, 2026
로컬 실험 결과 nori는 일부 중간 음절 오타만 잡고(예: 타이래놀) 사전에 없는 브랜드명 vs 사전에 있는 단어의 토큰 경계 불일치로 완전히 실패하는 케이스도 있음(예: 이지연↔이지엔). 완전한 해결은 커스텀 사용자 사전까지 필요해 범위가 커져서 이번엔 되돌리고 보류. 필요시 재오픈.