데브허브 | DEVHUB | [2부] 표준프레임워크 신규버전 v4.3 검색 기능에 활용된 AWS OpenSearch 알아보기! (김세웅 리더 OpenSearch User Group)[2부] 표준프레임워크 신규버전 v4.3 검색 기능에 활용된 AWS OpenSearch 알아보기! (김세웅 리더 OpenSearch User Group)
- 키워드 검색은 형태소 분석에 기반하며, 의미 있는 최소 단위인 형태소 발굴이 핵심입니다. 🔍
- 형태소 분석의 정확도는 품사 정보가 담긴 사전(예: Mecab, 세종)과 형태소 분석기(예: Nori) 튜닝에 크게 좌우됩니다. 📚
- 검색 정확도를 높이기 위해 특수문자 제거, 불용어(Stop words) 필터링, 사용자 사전 및 동의어 처리가 필수적입니다. 🧹
- 사용자 사전은 고유명사나 복합 명사가 분절되지 않도록 정의하며, 동의어는 도메인 특화 용어나 신조어 처리에 중요합니다. 🗣️
_termvectors와 _analyze API는 색인 및 쿼리 분석 결과를 확인하여 검색 정확도를 관리하는 데 유용합니다. 🛠️
- 사전 변경 시 리인덱싱이 필요하며, 검색 서비스 운영의 8할은 사전 작업에 해당할 정도로 중요합니다. 🔄
- 벡터 검색(시맨틱 서치)은 텍스트, 이미지 등을 N차원 공간의 벡터(좌표값)로 변환하여 의미적 유사성을 기반으로 검색합니다. 🌌
- 유클리디안 거리와 코사인 거리가 대표적인 벡터 유사도 측정 방식이며, 고차원 데이터에는 코사인 거리가 권장됩니다. 📏
- OpenSearch는 ML Commons/Neural 플러그인을 통해 외부 임베딩 모델(예: Bedrock, OpenAI)과 연동하여 벡터화를 자동화합니다. 🔌
- 벡터 검색 방식은 정확하지만 느린 Exact KNN과 빠르지만 근사치인 Approximate KNN(ANN)으로 나뉩니다. ⚡
- ANN은 HNSW, IVF 같은 알고리즘을 사용하며, HNSW는 학습 없이도 높은 재현율과 빠른 쿼리 속도를 제공하여 가장 인기 있습니다. 🚀
- ANN은 네이티브 메모리를 많이 사용하므로, 퀀타이제이션(양자화) 옵션(예:
on_disk 압축)을 통해 메모리 사용량과 비용을 효율적으로 관리할 수 있습니다. 💾
_warmup 및 _status API를 통해 ANN 인덱스의 메모리 사용량과 상태를 모니터링하는 것이 중요합니다. 📊