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 是一個快速、開源的搜尋引擎,可輕鬆為應用程式或網站加入專業、容錯拼字錯誤的搜尋體驗。它旨在成為 Elasticsearch 的更簡單替代方案,以及托管型 Algolia 服務的更便宜、可自架設替代方案,讓開發者無需大量設定或調校,即可快速實現優秀的搜尋功能。

工作原理

Typesense 是一個以 C++ 編寫的單一輕量級二進位檔,可在自己的伺服器或 Docker 中執行。您定義一個「集合」(類似資料庫表格),以 JSON 文件形式加入資料,然後透過簡單的 HTTP API 進行查詢。它會自動處理索引與搜尋的繁重工作,包括:

  • 內建拼字容錯,因此搜尋「stork」仍能找出「Stark Industries」。
  • 查詢時的過濾、排序、分面與分組 結果。
  • 使用機器學習模型的嵌入向量進行相似性與語意搜尋的 向量搜尋
  • 內建語意/混合搜尋,可內部產生嵌入(如 S-BERT、E-5)或透過 OpenAI 等外部 API。
  • 對話式搜尋(RAG),根據索引資料返回完整句子的答案。
  • 自然語言搜尋,將自由格式的語句轉換為結構化查詢。
  • 影像搜尋(透過 CLIP)與 語音搜尋(透過 Whisper 轉錄)。
  • 地理搜尋、跨集合的 聯邦搜尋JOIN同義詞 以及多租戶應用的 作用域 API 金鑰
  • 基於 Raft 的 叢集 以實現高可用性,並支援無縫版本升級。

適用對象

希望為 Web 或行動應用加入快速、容錯拼字錯誤搜尋功能的開發者與產品團隊——特別是那些覺得 Elasticsearch 運作過於複雜,或 Algolia 在擴展時成本過高的團隊。也適用於希望無需從零建構即可實現語意搜尋、RAG 式問答或影像/語音搜尋的團隊。

特色

  • 極快:基於 C++ 建構,搜尋延遲低於 50ms;基準測試顯示在 220 萬份食譜上平均約 11ms,在 2800 萬本書上約 28ms。
  • 易於操作:單一二進位檔,無執行時相依性,Docker 部署簡單,API 簡潔。
  • 查詢時靈活設定:排序、過濾、分面與分組可在查詢時設定,而非在索引建立時固定。
  • 內建 AI 功能:語意/混合搜尋、對話式搜尋(RAG)、自然語言搜尋、影像搜尋與語音搜尋。
  • 良好擴展性:支援高併發(例如 3 節點叢集每秒處理 250 個查詢),並支援叢集以實現高可用性。
  • 開源,同時提供托管雲選項(Typesense Cloud)與官方客戶端(JavaScript、Python、PHP、Ruby 等)。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案