OpenSearch Analyzer를 활용한 검색 기능 알아보기
·2025.04.11 19:00
OpenSearch의 Analyzer를 활용해 데이터를 토큰화하고 정교한 검색 기능을 구현하는 방법을 살펴본다.
OpenSearch는 Elasticsearch에서 파생된 NoSQL 기반의 검색 엔진으로, Apache Lucene을 사용하여 강력한 문서 검색 및 인덱싱 기능을 제공한다. JSON 기반의 문서를 저장하며, 동적 스키마와 매핑 설정을 통해 데이터 구조 변경에 유연하게 대응할 수 있다.
핵심 기능인 Analyzer는 입력된 데이터를 특정 규칙에 따라 토큰(token) 단위로 분리하여 인덱싱함으로써 검색의 정확도와 효율성을 높인다. 데이터 적재 시 Analyzer를 거쳐 토큰화된 데이터가 인덱싱되고, 검색 시에도 이 토큰을 기반으로 문서를 조회하는 과정을 거친다.
효율적인 검색을 위해 필드 타입 설정이 중요하다.
- keyword: 원본 데이터를 그대로 인덱싱하며 집계, 필터링, 정렬에 적합하다.
- text: Analyzer를 통해 토큰 단위로 분리되어 인덱싱되며, 정교한 검색이 필요한 경우에 사용한다.
- date, integer 등: 별도의 토큰화 없이 그대로 인덱싱되어 범위 검색 등에 활용된다.
사용자의 검색 요구사항에 맞춰 char_filter(공백/특수문자 제거), tokenizer(ngram 등), filter(소문자 변환)를 조합한 커스텀 Analyzer를 구성함으로써 검색 품질을 최적화할 수 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.