Untitled

우리 서비스에서 검색은 총 4가지(전체, 강사, 강의, 패스권) 상황에서 필요하다.

전체 검색에서 검색어를 통해 검색할 때에는 아래의 대상에서 검색어와 일치하는 데이터를 반환해야한다.

강사 - 강사 닉네임, 강의 장르, 활동 지역,소속

강의 - 강의 제목, 강사 닉네임, 지역, 장르

패스권 - 패스권 제목, 강사 닉네임, 패스권 적용 대상의 강의 제목

각각 단일 검색에서는 위의 조건 + 필터링까지 필요하다.

Untitled

Untitled

Untitled

RDBMS의 한계

전통적인 관계형 데이터베이스(RDBMS)는 엄격한 스키마와 행 기반의 데이터 구조로 인해 복잡한 검색 쿼리와 대규모 데이터에 대한 실시간 처리에 한계가 있다. 특히, 다양한 필드를 통한 텍스트 검색과 다중 필터링을 요구하는 우리 서비스의 경우, 쿼리가 복잡해지고 데이터가 많이질 수록 성능이 저하될 수 있다.

Elasticsearch!!

Elasticsearch(ES)는 Apache Lucene기반의 java 오픈 소스 분산 검색 엔진으로, 다음과 같은 특징을 가지고 있어 우리 서비스의 요구 사항을 충족시키기에 적합하다.