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 など、公式クライアントも多数用意されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト