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 等)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目