MeiliSearch 和 Elasticsearch 之间的主要区别是什么?
自 2010 年创建以来,Elasticsearch 已迅速成为搜索引擎市场上的热门选择,在各种应用程序和数据集中都有用武之地。不可否认它是一个用于大量全文搜索的强大搜索引擎,但在运维管理的成本较高,有一定的学习门槛。
对于处理大量日志的大型科技公司来说,Elasticsearch 可能是有意义的。但对于中等规模的数据集(即少于 500 万行)和较小的应用程序,它根本不适合。由于没有可用的开源替代方案,因此开发人员仍然将 Elastic 作为他们的默认解决方案。
这就是 MeiliSearch 的用武之地。MeiliSearch 提供快速、相关且容错的搜索,几乎没有设置时间,对于任何需要搜索引擎的开发人员来说,它都是一个很好的解决方案。
深入研究这些搜索引擎及其场景
2010 年,Shay Bannon 推出了 Elasticsearch 的第一个版本,这是一个用 Java 编写的分布式搜索引擎。建立在 Lucene 之上——Doug Cutting 于 1999 年为 Apple 等公司编写了其他四个搜索引擎后开始的一个项目——它几乎适用于任何需要全文搜索的应用程序。
虽然 Lucene 是底层的东西,但 Elasticsearch 为其用户提供了一个更高级别的接口:一个使用 JSON 文档的 HTTP API。它还通过分片和复制提供开箱即用的可扩展性。随着数据处理和可视化软件的加入,Elasticsearch 现在作为数据管理、监控和搜索的完全集成解决方案提供。
Elasticsearch 的场景非常广泛,从简单的站点搜索到海量数据集的分析,无所不包。
虽然可以使用 Elastic 做很多事情,但是再技术选型上并不意味一定需要这么选择。为了将 Elasticsearch 配置使用,运维或者开发人员必须对引擎的工作原理有一定的了解。
Elasticsearch 在处理海量数据集时非常强大;它可以快速水平扩展并允许构建复杂的查询。另一方面,没有什么是容易的。即使您只需要处理拼写错误、同义词或过滤器的简单搜索功能,您也需要花费数小时的培训、文档和配置。对于应该快速且无痛的事情来说,这需要大量资源,这就是为什么许多公司聘请 Elasticsearch 顾问来加快流程的原因。你在这里看到一个模式吗?
MeiliSearch 是一个用 Rust 编写的开源搜索 API,Rust 是一种高性能且可靠的编程语言。它由 Rust 贡献者 Quentin Dequelen 和 Clement Renault 于 2018 年创建,它提供了极高的性能,同时还允许开发人员对每个内存分配进行精细控制。
凭借深受 Algolia 启发的数据结构和算法,MeiliSearch 旨在为即时搜索提供最佳性能。与其试图复制 Elasticsearch 或 Lucene 的原始功能,MeiliSearch 是为闪电般的快速部署而构建的,具有开箱即用的搜索功能。
我们希望 MeiliSearch 成为用户搜索的首选解决方案。为此,需要考虑三个重要因素:速度、易用性和易于安装。
A. 速度
MeiliSearch 提供目标 50 毫秒内响应能力。这个速度阈值很重要,因为它允许用户实时响应搜索、缩小搜索条件或在找到所需内容时提前停止。
每次搜索可能只会节省几秒钟,但这几秒钟对用户来说代表着巨大的效率提升。在所有情况下,更少的搜索时间和更多的浏览时间意味着更多的点击、更好的销售或更高的产品生产力。
B. 最终用户的易用性
除了即时搜索,MeiliSearch 还提供了一种容错、自然的查询语言。
这使搜索引擎感觉简单直观。搜索栏常常让用户觉得他们必须学习一门新语言才能获得最佳结果——或者更糟的是,他们必须在搜索和 Google 之间来回切换才能获得正确的拼写或产品用户标识符。MeiliSearch 使搜索变得简单且响应迅速,因此用户可以专注于结果。
由于 MeiliSearch 是根据最终用户的需求进行配置的,因此可以在搜索中使用同义词,并且可以从结果中忽略“the”和“a”等冗余词。
C. 易于开发人员使用
MeiliSearch 提供了广泛的自定义工具集,包括同义词、停用词、排名规则等。但与其他搜索引擎不同,这些自定义选项只是:可选。
MeiliSearch 开箱即用,预设可轻松满足大多数应用程序的需求。
对于 MeiliSearch,我们选择了 RESTful API,因为大多数开发人员已经熟悉它的规范。
因此,我们制作了一个快速、有效的即时搜索引擎,几乎不需要任何设置。但为什么要停在那里?MeiliSearch 的团队正在努力构建不同语言的 SDK,以便用户可以尽可能快速、轻松地索引他们的数据。我们创建了许多集成,例如用于Ruby、Python、JavaScript、PHP和Golang的 SDK,或者搜索栏的前端和Web 框架集成等。
D. 如何安装MeiliSearch?
有时,一张 gif 图像值一千个字。
如您所见,只需要两个命令,我们就启动并运行了一个 MeiliSearch 服务器。
接下来,我们将向服务器添加文档。对于此示例,我们使用了一个电影数据集,您可以在此处下载。
使用我们的第一个命令,我们创建一个索引。然后,我们将包含 20,000 多部电影的电影数据集添加到该索引中。之后,我们使用查询“scoutt”发出搜索请求,该查询返回 Scott Pilgrim vs. the World 以及 Scouts Guide to the Zombie Apocalypse。
这个例子是用 cURL 制作的,目的是展示 RESTful API,但使用我们的任何 SDK都一样容易。只需前往相关存储库,即可在自述文件中找到示例。
希望现在很清楚,重要的问题不是哪个搜索引擎更好——重要的问题是,你用你的搜索引擎做什么?
MeiliSearch 不是用来搜索数十亿个大型文本文件或解析复杂查询的。这种搜索能力需要更高程度的复杂性并导致更慢的搜索体验,这与我们的即时搜索理念背道而驰。出于这些目的,请看 Elasticsearch;对于有资源实施它的公司来说,这是一个很好的解决方案。
另一方面,如果您想为最终用户提供顺畅的搜索体验,或使用包含大量关键字(例如电子商务、目录、文档等)的数据集,MeiliSearch 无疑是赢家。
通过 MeiliSearch,我们专注于简单的事情,以便以极少的成本提供最先进的搜索引擎。
MeiliSearch 提供开箱即用的即时搜索,因为您需要专注于其他事情
| 留言与评论(共有 0 条评论) “” |