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 등 공식 클라이언트도 제공됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트