
您是否想知道 Meilisearch 是否适合您?别担心!我们在这里帮助您更容易做出决定。在本文中,我们将分析两种搜索引擎的主要优缺点。
为什么我应该考虑 Meilisearch 而不是 Elasticsearch?
如果您正在寻找一个试图涵盖从应用搜索到日志分析等所有功能的搜索引擎,并且不介意花费必要的时间和精力来满足您的搜索需求,那么 Elasticsearch 可能适合您。
但是,如果易用性、性能和相关性对您很重要,那么 Meilisearch 就是为您而生。是否厌倦了翻阅大量的文档页面来配置冗长的参数列表,只为提供一个像样的搜索体验?我们理解您的沮丧。
说实话,即使您拥有世界上最灵活、最强大的工具,如果它使用和理解起来很麻烦,那也无济于事。这就是我们创建 Meilisearch 的原因:为开发人员提供他们所需的工具,轻松创建卓越的搜索体验。
在做出决定之前,您需要了解这两种引擎之间的差异以及您计划如何使用它们。
了解主要差异及其重要性
自2010年创建以来,Elasticsearch 迅速成为搜索引擎市场上的热门选择,被应用于各种应用程序和数据集。然而,尽管它无疑是用于重度全文搜索的强大工具,但在使用前需要进行大量配置,这意味着所有这些强大功能都伴随着高资源成本。
Elasticsearch 的开源性质在其受欢迎程度和采用中发挥了重要作用。而且,由于历史上没有太多开源替代品,开发人员仍然将 Elasticsearch 作为默认解决方案,结果在设置和培训上花费了不成比例的时间。
这就是 Meilisearch 的用武之地。它是一个开源、易用、快速、相关且容错的搜索引擎,可以轻松融入任何应用程序、网站和工作流程。它开箱即用,默认设置可以满足大多数项目的需求,同时也可以高度定制以满足个人需求。
Elasticsearch 是用来做什么的?
Shay Bannon 基于 Apache Lucene 库创建了 Elasticsearch,它是一个分布式搜索和分析引擎。Elasticsearch 现在与其他用于数据收集、分析和可视化的工具一起开发。这些产品被设计成一个集成解决方案,称为“Elastic Stack”。
主要优势
Elasticsearch 的主要优势在于其灵活性和可伸缩性,以及其聚合和分析能力。
灵活性
Elasticsearch 提供对所有类型数据的搜索和分析。它有广泛的用例,涵盖从简单的站点搜索、日志数据的管理和分析到端点安全的一切。
可伸缩性
Elasticsearch 的分布式架构通过向集群添加或删除节点来实现可伸缩性,使其成为管理大量数据的合适选择。
聚合与分析
Elasticsearch 提供高级聚合和分析功能,使用户能够从数据中提取见解并执行复杂的分析操作。
挑战
Elasticsearch 是一个非常强大的工具,但它也非常复杂。它的设置和维护可能很繁琐。由于没有实现基本站点或应用程序搜索的默认设置,因此需要进行配置。尽管 Elasticsearch 有大量的文档;但在跳入实现之前需要学习很多东西,这可能令人望而生畏,尤其是对于新用户。
在执行第一次搜索之前,您需要设置几个参数,包括相关性或拼写容错,这在现代应用程序或站点搜索中是必不可少的。熟悉此过程可能需要一些时间。
让我们看一个例子。给定新闻标题数据集,下面的请求要求在标题中包含“Khloe Kardashian Kendall Jenner”的结果
GET news_headlines/_search { "query": { "match": { "headline": { "query": "Khloe Kardashian Kendall Jenner" } } } }
以下是 Elasticsearch 的默认响应
{ "_index": "news_headlines", "_type": "_doc", "_id": "E9CoJ3cBwsjPafpAr39g", "_score": 17.15928, "_source": { "_date": "2015-05-16", "short_description": "", "@timestamp": "2015-05-16T00:00:00.000-06:00", "link": "https://www.huffingtonpost.com/entry/kendall-jenner-kourtney-kardashian-height-difference_n_7297968.html", "category": "ENTERTAINMENT", "headline": "Kendall Jenner And Kourtney Kardashian Are Not Quite Twins In Hilarious Instagram Photo", "authors": "Lily Karlin" } }
与人们预期的相反,Elasticsearch 返回的第一个结果并不是最相关的;它只包含部分搜索词。正如您在 `headline` 字段中看到的:它包含“Kendall Jenner”,这是预期的,但代替“Khloe Kardashian”的是“Kourtney Kardashian”。
当查询包含多个词时,用户通常期望搜索引擎优先显示包含所有词而不是仅包含部分词的结果。换句话说,用户在搜索多个词时通常期望“AND”操作而不是“OR”操作。
Elasticsearch 的匹配查询默认使用“OR”逻辑。如果文档包含其中一个搜索词,Elasticsearch 会将该文档视为命中。如果我们希望所有查询词都存在,我们必须在查询中添加 “AND”运算符,但这样会得到少得多的结果。
Elasticsearch 提供的另一个调整相关性的选项是使用 `minimum_should_match` 参数指定文档应包含在搜索结果中的最小词数。
这对于一个应该快速且无痛的事情来说,付出了很多努力。我们只讨论搜索的最基本知识。
此外,查询“Kardasian”(不带 `h`)不会返回任何结果。这是因为 Elasticsearch 不允许任何拼写错误,除非我们设置一个名为 `fuzziness` 的 额外参数。
我们向 Meilisearch 发送了相同的查询(带有拼写错误)
POST /indexes/news_headlines/search { "q": "Khloe Kardasian Kendall Jenner" }
无需任何配置,Meilisearch 返回的第一个结果是
{ "link": "https://www.huffingtonpost.com/entry/khloe-kardashian-licks-kendall-jenner-abs_us_559d7e27e4b05b1d028f98cf", "headline": "Khloe Kardashian Licks Kendall Jenner's 'Irresistible' Abs In New Instagram Photo", "category": "ENTERTAINMENT", "short_description": "Khloe and Kendall shared quite the intimate moment at the gym!", "authors": "Julia Brucculieri", "date": "2015-07-08", "id": 94869 }
正如我们之前所见,使用 Elastic 实现这种相关性需要调整多个搜索参数。所以,仅仅因为您可以用 Elasticsearch 做任何事情,并不意味着您就应该这样做。在许多情况下,Elasticsearch 可能只是大材小用。
Meilisearch 是用来做什么的?
Meilisearch 是一款开源、以用户为中心的搜索引擎,采用 Rust 编写。它于 2018 年创建,旨在提供一种可访问的搜索解决方案,无需任何配置即可满足绝大多数需求,并具有高度可定制性。
Meilisearch 提供即时搜索体验,包括强大的内置功能,例如 即时搜索、拼写容错、分面搜索、地理搜索 和 多租户。其 第一个主要版本于 2023 年初发布,使其完全稳定、向前兼容并可用于企业。
主要优势
Meilisearch 专注于简洁性、相关性和性能。
简洁性
Meilisearch 旨在为开发人员提供简单直观的体验。它开箱即用,无需配置。但您可以在几分钟内轻松根据您的需求进行调整,因此您无需成为搜索专家即可充分利用 Meilisearch。
相关性
Meilisearch 提供了一套预配置的排名规则,开箱即用即可提供高度相关性。这些默认设置是通过与社区直接合作迭代开发的,适用于大多数用例。这些规则可以根据个人需求进行定制。
性能
Meilisearch 旨在提供即时搜索体验,在最长 50 毫秒内返回结果。
挑战
虽然它可以处理大量数据,但 Meilisearch 的开源版本(自托管)可能不适用于需要分布式架构来处理跨多个节点或集群的海量数据的应用程序。
另一方面,Meilisearch Cloud 已经通过其 专业版和企业版计划 提供了可伸缩性和高可用性。
然而,我们的团队目前正在 收集反馈,以便在不久的将来实现分布式开源 Meilisearch。
Meilisearch 主要旨在为终端用户提供高性能的即时搜索体验,不提供全面的数据分析功能。虽然 Meilisearch 可以帮助您即时搜索数据并检索相关结果,但它尚未提供高级数据分析功能,例如数据可视化或统计分析。Meilisearch Cloud 计划在未来提供类似功能,您可以在其 路线图 中看到。
Meilisearch 还是 Elasticsearch?
现在应该很清楚,一种搜索引擎并不比另一种更好。最重要的因素在于您使用它的目的。两种搜索引擎都有其优缺点,了解它们对于为您的特定用例做出正确选择至关重要。
Meilisearch 不适合搜索数十亿个大型文本文件或解析复杂查询。这种搜索能力需要更高的复杂性,并导致搜索体验变慢,这与我们的即时搜索理念相悖。对于这些目的,Elasticsearch 是一个绝佳的解决方案,对于拥有必要资源的公司来说,无论是雇佣顾问的经济能力还是自行实施所需的时间和金钱,它都是一个极好的选择。
如果您需要一个开发人员友好的工具,能够轻松部署一个容错搜索,对用户来说直观,并能立即返回具有出色开箱即用相关性的结果,那么 Meilisearch 是一个完美的选择。它非常适合网站和应用程序内的搜索,包括 电子商务、文档 和 内容搜索。
了解 Meilisearch 能为您的业务带来什么
结论
总而言之,我们已经讨论了两种搜索引擎的主要优缺点,但这只是冰山一角。两种搜索引擎的功能远远超出了本文所涵盖的范围。要全面比较 Meilisearch 与 Elasticsearch 和其他搜索引擎,请参阅我们文档中的 专用部分。
您想了解 Meilisearch 的实际应用吗?试试我们的 演示。您还可以通过遵循我们的 快速入门指南,在不到五分钟内运行它并开始搜索您的数据。
我们不断与开源社区合作,开发新功能并提供最佳的开发人员和搜索体验。请参阅我们的 公共路线图,了解下一步的计划!
如果您有任何反馈或建议,请加入我们的 Discord 服务器 与我们交流!