搜索引擎优化指南3.0(我与MeiliSearch的联合创始人之一兼首席运营官ThomasPayetPayet)
优采云 发布时间: 2021-09-06 02:21搜索引擎优化指南3.0(我与MeiliSearch的联合创始人之一兼首席运营官ThomasPayetPayet)
原文:
在这次采访中,我采访了 MeiliSearch 的联合创始人兼首席运营官 Thomas Payet。 MeiliSearch 是一个开源搜索引擎,在撰写本文时,它是 GitHub 上最受关注的 Rust 项目之一。我们讨论了 MeiliSearch 以及 Rust 及其生态系统如何帮助他们创建它。
进一步阅读以了解他们在 Rust 方面的经验并发现开始您自己的开源项目的技巧。
MeiliSearch 是一个开源搜索 API。由于计算机的存在,搜索一直是一个问题。如今,大多数人都习惯使用谷歌或亚马逊来获得出色的搜索结果,但如果您没有这些大型高科技公司的能力,您可能会面临提供这样的用户体验的挑战。在 MeiliSearch,我们正在开发一种开源技术,我们相信该技术可以帮助许多开发者立即提供出色的搜索体验。
我是 Meili 的联合创始人之一,MeiliSearch 背后的公司(该公司成立三年)。我的职责是让团队保持同步,以确保每个人都能在我们公司做到最好,同时遵循相同的目标。我们大多数人都是开发人员,因为我可能是技术水平较低的人之一,所以我是最先改变角色以支持组织发展的人之一。
MeiliSearch 是一个由引擎和多个不同语言和框架的 SDK 和库组成的项目,以简化核心引擎的使用。引擎 100% 使用 Rust 编码,我们与社区保持了 8 种不同语言的 20 多个集成。
我们尽量不提倡任何特定技术;在内部,我们只会为工作选择最好的工具。 :)
当然,速度和安全是 Rust 的主要论据。
搜索引擎的两个关键要素是性能和相关性。只要你的算法和逻辑很好,你可以使用任何语言进行关联。就今天的性能而言,你可以选择 C++、Rust 或 Go。
在之前的工作中,我们用 Go 构建了一个搜索引擎,在设计面向性能的程序时,我们很快了解到垃圾采集语言的缺点。当我们运行基准测试时,我们发现了一些速度变慢,然后我们很快意识到是常规垃圾采集导致整个系统变慢。 ^^
对于 C++,从长远来看,我们维护 C++ 代码库似乎更加困难。此外,自从第一个稳定版本发布以来,我们的 CTO kero 一直是 Rust 开发人员。
最终,我们从未“决定”使用 Rust,因为在我们看来,这显然是我们完成这项工作所需的工具!
Rust 生态系统是现代的,在实际的 GitHub 贡献过程中,它很容易用作日常语言。我们对使用 Rust 构建非常有信心,因为它消除了其他语言可能带来的许多不确定性。我们可以专注于我们面临的其他挑战,例如设计和性能。
强大的 CS 研究人员社区实施了底层库,以实施我们经常受益的最新技术。另一方面,我们进行了多次迭代寻找合适的HTTP框架,最终选择了最适合我们用例的actix-web。
有很多,但这里只推荐三个:
在 MeiliSearch 路线图中,我们希望提供一些分布式系统特性,例如高可用和碎片化。
我们非常嫉妒 Hashicorp 的 Go Raft 库。我希望 Rust 中有类似的东西,但到目前为止,我们还没有找到这样一个 Crate 可以帮助我们使用共识算法轻松构建 MeiliSearch 集群。
我们从两年半前开始这个项目就想到了这一点,我们正在尝试集成不同的 Raft 实现库,但我们发现它们都不能满足我们的期望。这是我们在路线图中面临的最大挑战之一。
物品。这就是美丽搜索的未来吗?你想谈谈吗?
当然。 ^^
随着我们不断壮大的团队和项目,我们不断学习。去年,我们意识到为了简化外部贡献者的入门工作并开发新功能,我们需要重新架构整个代码库,使其更具可读性和可维护性。
我们的首席技术官 Kero 大约在一年前(2020 年 8 月)开始研究这个新的引擎迭代,我们计划在未来几个月内发布它。
我们内部面临一些困难,很难在保持最新稳定版本的 MeiliSearch 的同时,优先考虑新引擎迭代的工作。但是,我们迫不及待地想要正式发布它。性能提升令人难以置信!
Milli 存储库承载了核心引擎库的第四次迭代,但使用该库使其成为可用二进制文件的代码将发布在 MeiliSearch 存储库中。
我们在担任路易威登的承包商时开始了这个项目。在与他们合作的同时,我们开发了大部分项目。在某个时候,我们意识到我们必须从风险投资中筹集资金才能专注于开源项目。
我们认为,MeiliSearch 的可持续发展可以通过围绕 MeiliSearch 开展业务来实现,MeiliSearch 将以云产品 (SaaS) 的形式销售 MeiliSearch,并根据营业执照将特定功能出售给有特定需求的公司。
开发和维护开源项目可以很快成为整个团队的全职工作。我建议任何想要开始维护开源项目的人都找一个合作伙伴,因为还有很多其他的事情要做:你必须写文档、手稿指南、回答问题和提出请求!
与可能永远不会见面的陌生人一起工作很棒,但我担心如果你一个人做,很快就会变得不堪重负。