新晋的小而美的搜索引擎框框架,你知道吗?

优采云 发布时间: 2021-05-23 06:31

  新晋的小而美的搜索引擎框框架,你知道吗?

  今天,我们不要谈论一些更复杂的搜索引擎(例如ElasticSearch / Solr),而是谈论一些新的小型美观的搜索引擎框架。

  Meil​​iSearch与Elasticsearch

  Elasticsearch被设计为后端搜索引擎。尽管起初它不适用于此目的,但通常用于为最终用户创建搜索栏。与Elasticsearch不同,Elasticsearch是一个通用的搜索引擎,MeiliSearch专注于提供特定功能。

  Elasticsearch可以处理大量数据的搜索并执行文本分析。为了使其能够有效地用于最终用户搜索,您需要花一些时间来了解Elasticsearch的内部工作原理,以便您可以自定义和调整它以满足您的需求。 MeiliSearch旨在为最终用户提供高性能的即时搜索体验。但是,不可能处理复杂的查询或分析非常大的数据集。

  如果您想提供完整的即时搜索体验,Elasticsearch有时可能会太慢。在大多数情况下,与MeiliSearch相比,它返回​​搜索结果的速度要慢得多。如果您需要一个简单易用的工具来部署一个允许输入错误的搜索栏,提供前缀搜索功能,允许用户直观地搜索并立即以几乎完美的相关性返回结果,那么MeiliSearch是一个理想的选择。

  Meil​​iSearch与阿尔及利亚

  Meil​​iSearch受到Algolia产品及其背后算法的启发。我们确实研究了他们博客中描述的大多数算法和数据结构,以实现我们自己的算法。因此,MeiliSearch是一个基于Algolia的工作和最新研究论文的新型搜索引擎。它提供了相似的功能,并且与其前代产品一样,具有很高的相关性。

  与Algolia不同,MeiliSearch是开源的,用Rust编写。 Rust是一种系统级的现代编程语言,可以快速构建函数。 Rust还实现了可移植性和灵活性,这使我们的搜索引擎在虚拟机,容器甚至Lambda @ Edge中的部署成为无缝操作。

  阿尔及利亚的主要资产之一是它们为客户提供的强大的全球基础设施。 MeiliSearch当前提供搜索引擎,尚不能提供具有竞争力的基础架构。但是,我们的目标是使其部署和维护比Algolia更加简单。

  开源Lucene

  Apache Lucene是一个免费的开放源代码搜索库,用Java编写,用于全文索引和文档搜索。这个项目最初是由道格·切特(Doug Cutting)于1999年创建的,道格·切特曾在施乐公司的帕洛阿尔托研究中心(PARC)和苹果公司编写搜索引擎。由于Lucene是为构建网络搜索应用程序(例如Google)而开发的,因此您可以看到DuckDuckGo仍将其用于某些特定的搜索。

  Lucene后来分为几个项目。

  Lucene本身:全文搜索库。 Solr:具有强大REST API的企业搜索服务器。 Nutch:一个可扩展且可扩展的Web爬网程序,它依赖于Apache Hadoop。由于Lucene是许多开源或闭源搜索引擎背后的技术,因此它被视为参考搜索库。

  声波

  Sonic是用Rust编写的轻量级且无模式的搜索索引服务器。 Sonic不能被视为即用型解决方案,与MeiliSearch相比,它不能保证相关性排名。实际上,它不存储任何文档,而是由具有Levenstein自动机的反向索引组成,这意味着任何查询Sonic的应用程序都必须使用返回的ID从外部数据库检索搜索结果,然后应用某些相关性排名。它可以在几个MB的RAM上运行,这使其成为数据库工具的极简主义和资源高效的替代方案,而数据库工具可能太笨重而无法扩展。

  #Typesense与MeiliSearch一样,Typesense是为速度进行了优化的轻量级开源搜索引擎。我们目前正在重新评估其功能,以更好地了解它与MeiliSearch的比较。

  Lucene衍生物Lucene-Solr

  Solr是Apache Lucene的子项目,Apache Lucene由Yonik Seeley于2004年创立,现在是世界上使用最广泛的搜索引擎之一。 Solr是一个用Java编写并基于Lucene构建的搜索平台。换句话说,Solr是Lucene Java API的HTTP包装器,这意味着您可以通过使用Lucene的所有功能。此外,Solr服务器与Solr云相结合以提供分布式索引和搜索功能,以确保高可用性和可伸缩性。数据是共享的,但也会自动复制。此外,Solr不仅是搜索引擎;它还是搜索引擎。它通常用作文档结构的NoSQL数据库。文档存储在集合中,可以与关系数据库中的表进行比较。

  由于其可扩展的插件体系结构和可自定义的功能,Solr是一个具有无数用例的搜索引擎,尽管它在企业搜索中特别受欢迎,因为它可以索引和搜索文档以及电子邮件附件。

  神魔与诱惑

  Bleve和Tantivy是分别由Golang和Rust编写的搜索引擎项目,其灵感来自Apache Lucene及其算法(例如tf-idf,它是术语频率倒转文档频率的缩写)。像Lucene一样,它们都是可用于任何搜索项目的库。但它们没有现有的API,因此无法直接使用。

  Elasticsearch

  Elasticsearch是基于Lucene库的搜索引擎,Lucene库是全文搜索中最受欢迎的搜索引擎。它提供了可通过HTTP JSON访问的REST API。它的关键选项之一称为索引分片,使您能够将索引划分为物理空间,以提高性能并确保高可用性。 Lucene和Elasticsearch均旨在处理大型数据流,分析日志并运行复杂的查询。您可以处理和分析满足指定查询的文档(例如,计算名为“ Thomas”的所有用户的平均年龄)。

  如今,Lucene和Elasticsearch是开源搜索引擎领域的领导者。它们都是可靠的解决方案,适用于搜索领域中的许多不同用例,也适用于构建自己的推荐引擎。它们是很好的通用产品,但是需要正确配置它们才能获得类似于MeiliSearch或Algolia的结果。

  商业封闭源代码阿尔戈利亚

  Algolia是一家以SaaS模式提供搜索引擎的公司。该软件是封闭源。在早期阶段,Algolia提供了可以嵌入到应用程序中的移动搜索引擎,并且面临着从头开始实现搜索算法的挑战。从一开始,就决定构建一个直接面向最终用户的搜索引擎,即在移动应用程序或网站中实现搜索。在过去的几年中,Algolia成功地证明了忍受错字对于改善用户体验以及降低跳出率和提高转化率的影响至关重要。

  除了Algolia,在搜索引擎市场上还有大量的SaaS产品可供选择。他们中的大多数人都使用Elasticsearch并对其设置进行微调,以获得定制的个性化解决方案。

  Swiftype

  Swiftype是一家搜索服务提供商,专门从事网站搜索和分析。 Swiftype由Matt Riley和Quin Hoxie于2012年创立,自2017年11月起由Elastic拥有。Swiftype是基于Elasticsearch的端到端解决方案,这意味着它可以利用Elastic Stack。

  Doofinder

  Doofinder是一项付费的现场搜索服务。它被开发为可以以很少的配置集成到任何网站中。在线商店使用Doofinder来增加销量,并旨在促进购买过程。

  结论

  每种搜索方案最适合特定用例的约束。由于每种类型的搜索引擎都提供独特的功能集,因此比较其性能并不容易或不相关。例如,比较Elasticsearch和Algolia之间基于产品的数据库的速度是不公平的。对于非常大的基于全文本的数据库,情况也是如此。

  因此,我们无法将其与基于Lucene的搜索引擎或其他特定于任务的搜索引擎进行比较。

  在我们讨论的特定用例中,与MeiliSearch最相似的解决方案是Algolia。

  阿尔及利亚提供最先进,最强大的搜索功能,但是这种效率伴随着昂贵的定价。此外,他们的服务面向大公司。

  Meil​​iSearch致力于为所有类型的开发人员提供服务。我们的目标是提供易于安装和部署的开发人员友好型工具。因为对于我们来说,为最终用户提供出色的开箱即用的搜索体验对我们而言非常重要。我们希望每个人都能以最小的努力获得最佳的搜索体验,而无需投入太多资金。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线