데브허브 | DEVHUB | [10분 테코톡] 다로의 Elasticsearch[10분 테코톡] 다로의 Elasticsearch
- 기존
LIKE 쿼리의 느린 속도와 한영 동의어 검색 불가 문제를 해결하기 위해 Elasticsearch(ES)가 도입됩니다. 🔍
- ES는 모든 형태와 규모의 데이터를 저장, 검색 및 분석하는 데 특화된 문서형 NoSQL 데이터베이스입니다. 📊
- ES는 검색 속도 최적화를 위해 문서를 불변(Immutable)으로 저장하여 효율적인 캐시 활용과 높은 동시 읽기 성능을 제공하지만, 쓰기 비용은 높습니다. 🧊
- ES는 서버를 늘리는 수평 확장에 특화되어 있어, RDB의 수직 확장 한계를 넘어 더 빠른 검색 속도와 유연한 확장을 가능하게 합니다. ↔️
- ES는 클러스터, 노드, 샤드(원본 데이터 저장) 및 레플리카 샤드(복제본)로 구성된 분산 아키텍처를 통해 병렬 검색과 안정성을 확보합니다. 🌐
- 검색 품질 향상을 위해 문서를 저장하기 전 Character Filter(전처리), Tokenizer(토큰 분리), Token Filter(토큰 수정/추가/제거, 동의어 처리) 과정을 거칩니다. 🧠
- 분석기를 거쳐 생성된 토큰들은 '역색인(Inverted Index)' 방식으로 저장되어, 특정 단어가 포함된 문서 ID를 빠르게 찾아 검색 속도를 극대화합니다. 📖
- Token Filter 단계에서 동의어 사전을 활용하여 한글 '셔츠'와 영어 'shirts'를 동일하게 인식하고, 한글 형태소 분석기를 통해 정확한 검색 결과를 제공합니다. 🗣️