목록 보기
일본어 상품 검색 정확도 높이기: Elasticsearch + Kuromoji에서 OpenSearch + Sudachi로
백엔드

일본어 상품 검색 정확도 높이기: Elasticsearch + Kuromoji에서 OpenSearch + Sudachi로

라인
라인
2026년 8월 21일

두줄요약

Elasticsearch의 Kuromoji와 오래된 사전으로는 일본어 상품 검색 정확도에 한계가 있었습니다. OpenSearch와 Sudachi, Multi-field 전략으로 복합어·모델명·자동완성을 함께 개선했습니다.

문제 상황

  • Elasticsearch 7.10.2 환경의 Kuromoji 기본 설정으로 일본어 상품명이 과도하게 분해되어 검색 정확도 저하 발생
  • IPADIC 사전의 오래된 데이터로 신조어, 고유명사, 모델명 변형 대응 한계
  • 영문·숫자 혼합 모델 번호와 전각·반각 구분자 혼용으로 검색 불일치 발생

원인 분석

  • 상품명 검색 특성에 맞춘 analyzer 튜닝 부재
  • 사용자 사전 추가 방식의 임시 대응으로는 빠른 도메인 변화 흡수 불가
  • 형태소 분석만으로는 문자열 정규화와 접두사 자동완성 요구를 동시에 충족하기 어려움

해결 방법

  • OpenSearch 2.15.0으로 전환하고 Sudachi analyzer 도입
  • 복합어와 고유명사를 더 잘 유지하는 C 모드와 sudachi_split 활용
  • Multi-field 전략으로 compact, edge, keyword 서브 필드 분리
  • compact_product_name_analyzer와 edge N-gram으로 모델명 검색과 자동완성 보완

성능/운영 포인트

  • 8억 건 상품 인덱스에는 Edge N-gram을 적용하지 않아 인덱스 팽창과 색인 지연 억제
  • 1억 건 카탈로그 인덱스에만 edge 필드를 두고 자동완성 품질과 비용 균형 조정
  • 검색어 길이와 영숫자 포함 여부에 따라 compact 필드 조건부 활성화

다음 읽기

#검색 주제를 다룬 다른 회사 글

검색엔진의 Analyzer, 형태소분석기 ≠ 토크나이저

검색엔진의 Analysis 흐름과 Analyzer의 역할을 정리하고, 형태소 분석기와 토크나이저의 차이를 설명했습니다. 또한 동의어·n-gram·stop filter로 검색 품질을 조정하는 방법을 소개했습니다.

요기요
요기요
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...