Meilisearch v1.14 发布啦 ✨ 在我们的博客上阅读更多信息

前往首页Meilisearch 的徽标
返回文章
2024 年 1 月 18 日

Meilisearch 与 Typesense 对比

比较开源搜索引擎 Meilisearch 和 Typesense 之间的关键功能。

Laurent Cazanove
Laurent Cazanove开发者体验工程师StriftCodes
Meilisearch vs Typesense

在为您的搜索引擎项目选择 Meilisearch 和 Typesense 之间犹豫不决?无需再犹豫!在本文中,我们将深入探讨 Meilisearch 和 Typesense 的功能、特性和区别。我们将探讨每者在哪些方面优于另一方,以及它们的相对优势和劣势。

什么是 Typesense?

Typesense 是一款开源搜索引擎,优先考虑易用性和快速部署。它基于 C++ 构建,第一个提交版本于 2015 年发布,其源代码根据 GNU 通用公共许可证 (v.3.0) 提供。最初作为自托管开源搜索引擎起步,现在也提供付费的托管云解决方案。

Typesense 以其闪电般快速、容错的搜索能力而闻名,确保高效的用户体验。其功能包括即时搜索结果、自动建议、容错、相关性和简单的配置过程。这使其成为中小型企业的便捷选择。

它还涵盖了一些独特的用例,例如地理空间和分面搜索的高级配置。

什么是 Meilisearch?

Meilisearch 于 2018 年推出,是一款开源 (MIT 许可证) 搜索引擎。Meilisearch 的主要价值在于提供开发者友好的、即插即用的搜索解决方案,开箱即用地处理 90% 的用例。

Meilisearch 基于 Rust 构建,这使其能够构建高性能、可扩展且安全的应用程序。Meilisearch 迎合了广泛的用户群,重点关注中小型企业的需求。其突出的特点包括极快的搜索速度和现代化的开发者环境。

与 Typesense 一样,它既可以作为开源的自托管二进制文件使用,也可以作为 托管云解决方案 使用。虽然两者在理念和功能方面都有许多相似之处,但也有一些重要的细微差别将它们区分开来。

Meilisearch 不仅提供无与伦比的索引速度和强大的多语言支持,而且其庞大的社区也积极参与其快速开发。

Typesense 与 Meilisearch - 关键功能对比

开发者体验

提供无缝且无忧的开发者体验是这两种搜索工具的核心。两者都提供简单的设置过程、全面的文档和 Docker 支持,以便于简单部署。

两者还都具有 RESTful API,可与各种编程语言和框架无缝集成。它们的 API 也非常直观且不言自明,使您可以“即拿即用”,学习曲线极低。

这两者之间的区别在于细节。Meilisearch 在其现代化的开发者仪表板 UI 方面具有优势,而 Typesense 则更具传统风格。

但是,使用任何一种选项都可以轻松启用和配置不同的功能(如分析或语义搜索)。通常,云用户只需点击几下即可完成,而自托管解决方案仅需一个命令。在大多数情况下,这两种选项都提供了“一劳永逸”的方法,大多数搜索功能(如容错)都可以开箱即用。

Typesense 的一项功能可能会节省您额外的开发时间,即自动生成的记录 ID 和内置的查询建议。但是,自动文档 ID 生成 已在 Meilisearch 中开发中。

SDK 和集成

Typesense 和 Meilisearch 都提供广泛的支持,为各种流行的编程语言(包括 JavaScript、.NET、Python、PHP 等)提供 API 客户端。

Meilisearch 在对其他语言和框架的支持方面范围略广,官方 SDK 或对 Laravel、Strapi 和 Rust 的支持。Meilisearch 为各种 JAMstack 生态系统解决方案(如 VuePressStrapiGatsbyFirebase)提供插件。

此外,Meilisearch 还为流行的托管服务(如 AWSGCPDigitalOcean)提供一键部署,以简化您 DevOps 中的部署。更不用说为 Platform.sh、Azure、Railway、Koyeb 提供的官方一键部署。这证明了 Meilisearch 的主要承诺之一:提供将 Meilisearch 集成到任何项目中的简便方法。

两种解决方案都为开源 Instantsearch.js 开发了集成,从而可以轻松地将分析数据发送到平台。使用任一解决方案,您都可以选择通过 instantsearch.js 实现客户端分析,并与第三方分析服务集成。

相关性和容错

容错和相关性提升功能对于改善用户体验和整体搜索性能至关重要。Meilisearch 和 Typesense 都内置了容错和相关性,并已准备就绪。

Typesense 允许对字段进行加权或提升,以提高相关性。这样,您可以轻松地确保某些字段中的匹配项对搜索结果排名的影响更大,这取决于您的应用程序。例如,在电子商务产品目录中,开发者可以将产品标题字段的权重分配得高于描述字段。

Meilisearch 虽然提供了强大的容错和相关性调整功能,但目前不提供字段加权。相反,它侧重于整体上下文和使用自定义排名规则来优化搜索结果。这种方法提供了灵活性,但在特定字段相关性是首要任务时,可能需要更多微调。

但是,字段提升仍在 Meilisearch 中开发中。此功能将允许开发者提升或“埋没”(即降低排名)搜索结果中符合特定条件的文档。

两种产品都提供语义搜索功能。但是,Meilisearch 可以为您处理 向量嵌入的生成,使您无需设置额外的基础设施即可从 AI 中受益。这些由 AI 和大型语言学习模型通过第三方工具(包括 OpenAI)提供支持。

除此之外,两者在其他一些小众功能上有所不同。Meilisearch 具有内置的停用词支持,而如果您使用 Typesense,则需要在客户端手动实现此功能。另一方面,Typesense 提供了按指定字段对搜索结果进行分组的功能。Meilisearch 正在 考虑 此功能。

简而言之,Typesense 的字段加权功能使其在需要明确定义和优先考虑不同字段重要性的场景中具有优势。Meilisearch 提供了一种更广泛但不太针对特定字段的方法来管理搜索相关性。但是,Meilisearch 在其不断增长的 AI 搜索功能(包括混合搜索)方面领先。

索引和性能

Typesense 和 Meilisearch 的主要区别在于快速索引性能和即时搜索即时输入功能。

Typesense 使用 RAM 进行索引存储,其性能针对速度进行了优化,因此即使是大型数据集也可以近乎实时地进行搜索。这在实时产品目录或流媒体内容平台等场景中尤其有利,在这些场景中,快速更新和快速访问数据至关重要。

Meilisearch 采用了略有不同的方法。它使用磁盘空间作为其主要索引位置,并使用内存映射数据库,该数据库允许操作系统仅将数据库的相关部分加载到 RAM 中。除了速度之外,Meilisearch 还强调其索引过程的灵活性和可扩展性。异步索引允许处理大型数据集,而不会对搜索性能产生重大影响。

这使得 Meilisearch 非常适合数据集庞大或不断增长且索引速度和搜索相关性之间的平衡很重要的应用程序。例如,电子商务平台、CMS、数字图书馆、社交媒体和流媒体服务。

外语处理

在这两者之间,Meilisearch 提供了更广泛的语言支持,并一直在积极改进其引擎的这一方面。Typesense 在需要复杂分词的语言(如中文、日语和阿拉伯语)方面尤其受限。

[改进多语言支持](/blog/improving-meilisearchs-language-support/) 通过其分词库 Charabia 是 Meilisearch 的一个关键目标,它有效地利用了其庞大而活跃的贡献者社区来改进其模型。该团队积极鼓励使用各种渠道来促进其语言分词的持续开发。

Meilisearch 目前提供对 拉丁语、中文、阿拉伯语、日语、泰语、韩语等 的优化支持。

另一方面,Typesense 目前使用基于 Unicode 的分词库。虽然从理论上讲,Typesense 支持所有语言,但现实情况略有不足。Unicode 系统在处理不使用拉丁字母或西方书写习惯的语言方面不是特别好。例如,它在处理形态丰富的语言(如俄语和土耳其语)以及没有传统单词间距的语言(中文和日语)时会遇到困难。

Meilisearch 相对于 Typesense 的另一个显着优势是自动语言检测,以启动适当的分词管道。这大大简化了搜索集成,因为您无需手动指定语言或在客户端实现语言检测。

目前,Typesense 在继续开发和扩展其语言支持方面采取了哪些步骤尚不清楚,因为在其 当前路线图未解决的问题 中似乎没有与多语言或本地化相关的项目。

分析和数据可视化

Meilisearch 通过其云产品提供 搜索分析。它可以跟踪搜索查询和转化,这对于了解用户行为非常有用。

Meilisearch Cloud 用户可以访问高级搜索分析,数据可视化直接在帐户仪表板中进行。它可以跟踪各种指标,从搜索次数最多的查询到每日搜索再到没有结果的搜索。这使得可以简单快速地访问有关搜索性能和用户行为的可操作见解。

自托管用户也可以从 Meilisearch 的迷你仪表板 中获得一些价值。这应该可以很好地了解您的搜索在实践中的表现。

Typesense 为自托管和云用户提供原生搜索分析。目前,它仅跟踪搜索词的受欢迎程度并对其进行适当排名。

社区和支持

Typesense 和 Meilisearch 都是建立在强大社区支柱之上的开源项目。Typesense 抢先 4 年,因此其公共 Discord/Slack 社区比 Meilisearch 大得多,分别为 1,000 人和 400 人,这不足为奇。

但是,Meilisearch 似乎在利用其社区取得进步方面做得更好,主要项目贡献者为 138 人,而 Typesense 为 37 人。这反映在 PR 的数量上。Meilisearch 的 PR 数量远超 1,700 个,其中 29 个仍处于打开状态。Typesense 的工作活跃度似乎较低,总共只有 250 个 PR(5 个处于打开状态)。

其他健康指标也对 Meilisearch 有利。它的未解决问题数量与已关闭问题数量之比非常健康,仅为 129 个未解决问题,而已关闭问题为 1,536 个。相比之下,Typesense 有 425 个未解决问题,而已关闭问题仅为 713 个。

Meilisearch 在 Github Star 数量上也明显领先,为 40.7k,而 Typesense 仅为 16.1k。

但是,两者似乎对未来都有很多雄心壮志,在其各自的路线图上都有大量的计划功能和改进。

在支持方面,免费使用 Meilisearch 或 Typesense 的开发者可以获得基于社区的支持以及电子邮件或在线聊天。话虽如此,两者都推出了云产品的优质支持。Typesense 提供多层支持计划结构。虽然 Meilisearch 计划在未来推出类似选项,但您目前可以与他们讨论您的需求以获得量身定制的支持解决方案。

Typesense 的挑战

正如我们提到的,Typesense 相对于 Meilisearch 的一个不足之处是其有限的语言支持。

但是,与其他搜索引擎一样,由于其选择的开发路径,它也存在一些固有的缺点。首先,将其整个索引存储在内存中意味着您的数据集大小受到可用资源的限制。因此,虽然它简单快速,但在扩展方面您可能会面临一些挑战。

Typesense 的开发绝非停滞不前,但其社区规模较小,开发速度也慢于 Meilisearch。虽然它在某些方面(如向量搜索)具有先发优势,但差距正在缩小。并且在其他领域,如语言支持和分析方面,Meilisearch 已经超越了它。

Meilisearch 的挑战

在追求开发快速、高效且开发者友好的搜索引擎的过程中,Meilisearch 也做出了一些有意的设计权衡。

首先,Meilisearch 每个搜索词最多只考虑 10 个单词。虽然这在一定程度上限制了搜索词的复杂性,但有助于保持较低的响应时间。

同样,它对每个属性的最大单词数、每个文档的属性数和每个索引的文档数(约 43 亿)等施加了约束。同样,这些限制 的存在是为了在满足绝大多数用例要求的同时,减少对性能的可能影响。

自托管的 Meilisearch 也不支持分布式架构,尽管它为 Meilisearch Cloud 用户提供 高可用性

最后,Meilisearch 在基于字段加权和分组微调搜索结果方面略有滞后。

定价和商业产品

两者都为自托管项目提供免费和开源的搜索解决方案,并且在可预见的未来都应保持这种状态。真正的差异化在于他们的云产品。

Typesense 遵循按需付费模式。您将获得一个专用集群,并根据您所需的 RAM 大小按小时收费。您还需要考虑出站带宽的成本,其中包括 API 响应以及在集群之间复制索引或配置更改。

最经济实惠的设置每月费用约为 21.60 美元起。但是,对于更高的 RAM 和处理要求,它可能会迅速膨胀到每月数千美元(或数万美元)。

相比之下,Meilisearch 提供 分层定价 结构,如果您超出计划的限制,则需支付超额费率。定价从每月 30 美元起(仅略高于 Typesense 最基本的配置),包括 100,000 次搜索和 100 万个文档(索引数据条目)。

虽然两者的定价都具有一定程度的不可预测性,但 Meilisearch 可以说是两者中更稳定的一个。如果您知道您的平均每月搜索次数以及您需要多少数据条目,那么您应该可以轻松计算出您的成本。

从理论上讲,Typesense 每月可以为您节省几美元。但是,其实际出站带宽费率意味着,实际上,根据您的使用情况和配置,它最终很可能会花费几乎相同的费用(或更多)。

何时应考虑 Typesense 而不是 Meilisearch?

Typesense 用于地理空间和分面搜索的高级配置使其成为需要复杂查询功能的应用的理想选择,例如基于位置的服务或广泛的产品过滤。

这使其成为许多拥有庞大产品目录的电子商务平台的首选,在这些平台中,字段加权是一个重要的转化因素。或者流媒体平台,其中结果通常按区域进行分面,并且对搜索查询的语义理解对于查找相关结果非常重要。

在某些用例中,Meilisearch 的已知限制(例如其 10 个单词的查询限制)可能不适用。例如,如果您主要索引复杂数据,例如学术、医疗或研究数据库。

何时应考虑 Meilisearch 而不是 Typesense?

对于需要强大的多语言支持和高级索引功能的场景,Meilisearch 表现良好。它特别适合面向全球受众的平台,在这些平台中,支持各种语言和字母表至关重要。

Meilisearch 开发者友好的环境及其即插即用设置非常适合开发时间和资源有限的项目。其可扩展的架构也使其成为大型动态数据库(如数字图书馆或广泛的内容管理系统)的理想选择。

寻求现代 UI 和广泛社区支持的开发者可能会发现 Meilisearch 更符合他们的喜好。长期项目将继续受益于其快速的开发步伐。


详细了解 Meilisearch 可以为您的业务带来什么

与搜索专家交流


结论

您对 Typesense 和 Meilisearch 的期望是开发者友好的体验、闪电般快速的性能以及即时搜索即时输入体验。

Typesense 在为网站和应用程序提供快速、容错的搜索体验领域是一位真正的先驱。Meilisearch 继承了这一传统,但也引入了独特的功能来使其与 Typesense 区分开来。

Meilisearch 优先考虑开发者体验,提供直观的仪表板、简单的一键部署以及蓬勃发展的社区。此外,它还通过内置功能(如搜索分析和改进的多语言支持)节省了大量时间。Typesense 的突出特点是地理空间和分面搜索。

您可以使用此在线 演示 查看 Meilisearch 的实际应用。此外,欢迎查看其 公共路线图GitHub 社区,了解您可以期待哪些新的和即将推出的功能。

The 10 best AI enterprise search tools and platforms [2025]

10 大 AI 企业搜索工具和平台 [2025]

了解当今市场上十大最佳 AI 企业搜索工具。了解它们在功能、能力、用例、定价等方面的比较。

Ilia Markov
Ilia Markov2025 年 4 月 15 日
Top 10 Elasticsearch alternatives and competitors in 2025

2025 年排名前 10 位的 Elasticsearch 替代品和竞争对手

了解 Elasticsearch 的 10 大最佳替代品,以及它们的主要功能、定价、优缺点(基于真实用户)、集成等。

Ilia Markov
Ilia Markov2025 年 4 月 10 日
Intelligent search: the future of finding relevant results

智能搜索:查找相关结果的未来

了解智能搜索如何改善信息发现。了解关键优势、实施技巧和趋势,以改变您查找重要内容的方式。

Ilia Markov
Ilia Markov2025 年 4 月 8 日