日拱一卒的意义:开源搜索引擎Typesense作者自述:每天写一点代码,写出Typesense

简介: 日拱一卒的意义:开源搜索引擎Typesense作者自述:每天写一点代码,写出Typesense

日拱一卒无有尽,功不唐捐终入海”,时间长了,再小的进步也会产生价值,这就是意义所在。

最近开源搜索引擎 Typesense 作者写下了自己在开发时的心路历程,以下为原文翻译整理:

六年前我第一次开始使用 Typesense 时,我给自己定了一个简单的规则:

在每天上班前或下班后写一些代码。

很直白的一个目标,没有 DDL,没有 KPI,也没有里程碑。

我即将结婚,并且已经在全职工作了,我肩上的责任越来越沉,在这种情况下我只能用此方式来提高自身。

众所周知,从头开始构建搜索引擎并非易事,所以每天在空闲时间写一些代码可以让我不必应对额外的压力。

有些性能需要一个小时才能实现,有些性能需要几个小时才能实现,有时候完成一个性能甚至需要持续数周,但这并不重要,因为没有任何形式的截止日期。

回想起来,在过去的 6 年里遵循这一规则给我带来的收获是我不敢相信的,过程很漫长,但我坚持住了。

而在这个过程中,我的生活也引来了很多新的变化:我结婚了,有了一个女儿,也在抵抗中失去了所爱的人,因新冠肺炎经历了重大的健康问题...

不明白是从哪个时刻开始,Jason 和我已经能够从头开始构建一个开源搜索引擎了,以下是我们迄今为止旅程的简要总结:

  • 2015 年:各种数据结构的原型设计和基准测试
  • 2016 年:首次正式提交,构建核心模糊文本搜索引擎
  • 2017 年:HTTP API,支持数字过滤和分面搜索
  • 2018 年:客户端库、只读副本、Hacker News 发布失败
  • 2019 年:赚到第一美元
  • 2020 年:集群、Typesense Cloud、多个演示、Hacker News 成功发布 2021 年:全职投入 Typesense,撰写我们的第一篇博文 :)

我们踏上的路径与关于创办公司的几种流行的传统观点背道而驰,我们在一开始并没有辞掉日常工作立即开始全职开发 Typesense,没有寻求风险投资,也没有试图通过追逐高速增长来“垄断”市场。

我们没有可以利用的个人品牌或广泛的网络。直到第 5 年,我们甚至都没有赚到一美元,但我们的跑道几乎是无限长的。在这个长期的过程中,我们逐渐明白:只有当我们充分降低该选项的风险时,才能全职投入 Typesense。

如果您想通过推出自己的产品来获得一定的成功和独立性,并且希望降低风险的话,我的建议是:在一个永远有需求的大市场中获得一个想法,并开发一种适合一部分用例的产品。

选择一个并不主流的想法,并保证它在一个大型且最好是需求不断增长的市场中,这样可以大概率降低风险并且可以缓慢稳定地发展。

只要坚持下去,就会在某个时刻成功。

以 Typesense 为例:

我们从一个简单的想法开始:构建一个开箱即用并且使用感良好的搜索引擎,使搜索民主化。在我们刚开始时,我们就知道网站和应用程序总是需要搜索,而且这是一个需求庞大且不断增长的市场。

在我们慢慢构建 Typesense 的过程中,我们看到了其他几家公司也在为同一个市场发起攻击(这就是市场验证)。尽管如此,我们仍然有目的地继续前进,并从中更好地了解到了市场需求在缓慢增长。

在 Typesense 工作了 6 年,但我们的故事才刚刚开始。现在我和 Jason 都在全职开发 Typesense,我们期待着按照自己的方式去发展它。

相关文章
针对FastAdmin新增上传多个图片,新增上传的视频的预览效果
针对FastAdmin新增上传多个图片,新增上传的视频的预览效果
1296 0
|
编解码 C++ Windows
QT软件开发: QProcess启动进程完成交互并获取输出
QT软件开发: QProcess启动进程完成交互并获取输出
3098 0
QT软件开发: QProcess启动进程完成交互并获取输出
|
SQL 搜索推荐 测试技术
【Havenask实践篇】完整的性能测试
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。性能测试的目的在于评估搜索引擎在各种负载和条件下的响应速度、稳定性。通过模拟不同的用户行为和查询模式,我们可以揭示潜在的瓶颈、优化索引策略、调整系统配置,并确保Havenask在用户数量激增或数据量剧增时仍能保持稳定运行。本文举例对Havenask进行召回性能测试的一个简单场景,在搭建好Havenask服务并写入数据后,使用wrk对Havenask进行压测,查看QPS和查询耗时等性能指标。
66309 6
|
消息中间件 运维 Serverless
商业版vs开源版:一图看懂云消息队列 RocketMQ 版核心优势
自建开源 RocketMQ 集群,为保证业务稳定性,往往需要按照业务请求的峰值去配置集群资源。云消息队列 RocketMQ 版 Serverless 实例通过资源快速伸缩,实现资源使用量与实际业务负载贴近,并按实际使用量计费,有效降低企业的运维压力和使用成本。
769 103
|
1月前
|
人工智能 缓存 搜索推荐
阿里云百炼产品月报【2025年10月】
通义千问本月重磅升级:发布9款Qwen3-VL多模态模型,支持视频理解、2D/3D定位;MCP生态新增17项服务;推出电商AI生图模板,助力商家降本增效。
|
自然语言处理 编译器 Linux
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
1324 0
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
|
安全 API 数据库
开源邮箱?十大开源邮件系统总有一款适合
开源邮箱?十大开源邮件系统总有一款适合
|
运维 监控 搜索推荐
【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
5106 0
|
数据库 开发者 微服务
浅谈微服务架构中的数据一致性解决方案
在分布式系统的演进过程中,微服务架构因其高度的解耦和独立性成为了众多企业技术栈的首选。然而,微服务架构中的数据一致性管理却是一个棘手的问题,直接关系到系统的稳定性和可靠性。本文将探讨在微服务架构下,如何通过不同的策略和技术手段,有效地解决数据一致性问题。我们将介绍基于事件驱动的一致性模式、分布式事务处理机制以及最终一致性的概念,并分析它们各自的应用场景和优缺点,为开发者提供在设计和实现微服务架构时的参考和指导。
690 0