Typesense는 오탈자 허용 및 50ms 미만의 즉각적인 검색에 최적화된 엔진입니다. 데이터베이스 기반 검색과 달리 별도의 인덱스를 생성하여 쿼리하며, 높은 성능과 합리적인 기본 설정을 제공합니다. Typesense는 애플리케이션의 주 데이터 저장소가 아닌 보조 인덱스 역할을 수행합니다.
Typesense 기본 개념
- Document: 개별 데이터 레코드.
- Collection: 관련 문서 그룹, 스키마에 따라 필드와 타입을 정의.
- Schema: 컬렉션에 인덱싱할 데이터의 구조.
Rails 통합 방법론
- Typesense 서버 준비: Typesense 서버를 설치 및 실행합니다.
- 데이터 모델 정의: Rails 애플리케이션 내 검색 대상 모델을 정의하고 데이터를 준비합니다.
typesense-ruby젬을 이용한 직접 통합:* Typesense 클라이언트 설정 후, 서비스 클래스를 통해 컬렉션 스키마를 생성하고 데이터를 인덱싱합니다. * Rails 모델 콜백을 활용하여 데이터베이스와 인덱스 간의 동기화를 수동으로 구현하며, 검색 결과 하이라이팅을 처리합니다.typesense-rails젬을 이용한 간소화된 통합 (권장):* 이 젬은 Typesense 통합을 선언적으로 간소화하며, 모델 내typesense do ... end블록에서 인덱싱 속성 및 정렬 필드를 정의하여 설정을 모델 레벨에서 관리합니다. *Movie.search와 같은 편리한 메서드를 제공하여 검색을 용이하게 하며,pagy젬 통합 및sort_by파라미터로 페이지네이션과 정렬을 지원합니다.