typesense/typesense
Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
해결하는 문제
Typesense는 C++로 구현된 빠르고 오타에 강한 오픈소스 검색 엔진으로, Elasticsearch의 더 간단한 대안이자, 호스팅형 Algolia 서비스의 더 저렴하고 자가 호스팅 가능한 대안을 목표로 합니다. 앱이나 웹사이트에 고급스럽고 오타에 강한 검색 경험을 쉽게 추가할 수 있도록 설계되어 있으며, 많은 설정이나 튜닝 없이도 빠르게 훌륭한 검색 기능을 구현할 수 있습니다.
작동 방식
Typesense는 C++로 작성된 단일 경량 바이너리로, 자체 서버나 Docker에서 실행할 수 있습니다. 데이터를 JSON 문서로 정의하여 "컬렉션"(데이터베이스 테이블과 유사)을 만들고, 간단한 HTTP API를 통해 쿼리합니다. 인덱싱과 검색의 복잡한 작업을 자동으로 처리하며, 다음과 같은 기능을 제공합니다:
- 오타 내성이 기본 제공되어, "stork"를 검색해도 "Stark Industries"를 찾을 수 있습니다.
- 쿼리 시점에서 필터링, 정렬, 패싯, 그룹화를 지원합니다.
- ML 모델의 임베딩을 사용한 유사성 및 의미적 검색을 위한 벡터 검색.
- 내부에서 임베딩을 생성할 수 있는 내장된 의미적/하이브리드 검색 (예: S-BERT, E-5) 또는 OpenAI와 같은 외부 API를 통해.
- 인덱스된 데이터를 기반으로 전체 문장을 반환하는 대화형 검색 (RAG).
- 자유형 표현을 구조화된 쿼리로 변환하는 자연어 검색.
- 이미지 검색 (CLIP 기반) 및 음성 검색 (Whisper 음성 인식 기반).
- 지리 검색, 컬렉션 간 페더레이티드 검색, JOIN, 동의어, 그리고 다중 테넌트 앱을 위한 스코프가 지정된 API 키.
- 고가용성을 위한 Raft 기반 클러스터링과 원활한 버전 업그레이드.
대상 사용자
Elasticsearch가 운영에 너무 복잡하거나 Algolia가 스케일링 시 비용이 너무 높다고 느끼는 개발자 및 제품 팀. 의미적 검색, RAG 기반 질의응답, 이미지/음성 검색을 자체 시스템을 구축하지 않고도 원하는 팀에게도 유용합니다.
주요 특징
- 초고속: C++로 구현되어 검색 지연이 50ms 미만이며, 벤치마크 결과 220만 개 레시피 기준 평균 약 11ms, 2800만 개 책 기준 약 28ms.
- 운영이 간편: 단일 바이너리, 런타임 의존성 없음, Docker 설정이 쉬우며 간단한 API 제공.
- 쿼리 시점 설정의 유연성: 정렬, 필터링, 패싯, 그룹화는 인덱스 생성 시 고정되지 않고 쿼리별로 설정 가능.
- 내장된 AI 기능: 의미적/하이브리드 검색, 대화형 검색 (RAG), 자연어 검색, 이미지 검색, 음성 검색.
- 우수한 확장성: 고병렬 처리 (예: 3노드 클러스터에서 1초당 250건의 동시 쿼리)를 지원하며, HA용 클러스터링도 제공.
- 오픈소스이며, 관리형 클라우드 옵션 (Typesense Cloud)과 JavaScript, Python, PHP, Ruby 등 공식 클라이언트도 제공됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트