Elasticsearch의 형태소 분석기와 역인덱스: 검색 엔진의 핵심
·
개발 알쓸신잡
0. 들어가며검색 기능을 공부하면서 MySQL의 LIKE 쿼리를 접하게 되었습니다. 단순 문자열 매칭을 통해 원하는 데이터를 찾을 수 있다는 점에서 직관적이고 이해하기 쉬운 방법이었습니다. 하지만 실제로 조금 더 깊게 살펴보면서 LIKE의 한계를 알게 되었습니다. 데이터가 많아질수록 성능이 급격히 저하될 수 있다는 점이 가장 큰 문제였습니다. 그 원인은 크게 세 가지로 나눌 수 있습니다. 첫째, 전체 테이블 스캔: LIKE '%검색어%'와 같이 앞쪽에 와일드카드가 붙으면 인덱스를 전혀 활용하지 못하고 모든 행을 검사하게 됩니다.둘째, 조인과 집계 연산 부담: 검색과 함께 복잡한 조인이나 정렬, 집계를 수행하면 한 쿼리에서 처리해야 하는 데이터가 기하급수적으로 늘어나 속도가 떨어집니다.셋째, 데이터 증가에..