日拱一卒的意义:开源搜索引擎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,我们期待着按照自己的方式去发展它。

相关文章
|
消息中间件 运维 Serverless
商业版vs开源版:一图看懂云消息队列 RocketMQ 版核心优势
自建开源 RocketMQ 集群,为保证业务稳定性,往往需要按照业务请求的峰值去配置集群资源。云消息队列 RocketMQ 版 Serverless 实例通过资源快速伸缩,实现资源使用量与实际业务负载贴近,并按实际使用量计费,有效降低企业的运维压力和使用成本。
1167 135
|
Kubernetes 调度 虚拟化
Kubernetes和Docker有什么区别
【10月更文挑战第18天】Kubernetes和Docker有什么区别
|
存储 监控 安全
RFID车辆无感识别进出管理更高效
RFID技术广泛应用于车辆无感识别进出管理,如停车场、园区、物流等场景。通过自动识别车辆身份,实现无需停车或人工操作的高效通行,提升管理便利性与智能化水平。
|
自然语言处理 调度
扩散语言模型的下一跳:引入“路径因果耦合机制”
本文探讨扩散语言模型(D-LLM)的演化方向,指出当前扩散路径存在“孤岛化”问题,提出“路径因果耦合机制”,增强生成文本的逻辑一致性与结构性,提升生成质量与收敛速度,有望成为扩散语言模型迈向认知智能的重要一步。
417 0
|
开发框架 .NET API
.NET 10首个预览版发布:重大改进与新特性概览!
.NET 10首个预览版发布:重大改进与新特性概览!
637 3
.NET 10首个预览版发布:重大改进与新特性概览!
|
存储 SQL Java
王日宇:基于 StarRocks 和 Paimon 打造湖仓分析新范式
本文根据 StarRocks Summit 2023 演讲实录整理而成,主要分享了基于 StarRocks 和 Paimon 打造湖仓分析方案及背后的技术原来和未来规划。
2762 1
|
Oracle 关系型数据库 数据库
Docker安装Oracle_11g数据库并配置
Docker安装Oracle_11g数据库并配置
1273 0
|
人工智能 文字识别 API
OpenSearch & AI搜索开放平台,实现0代码图片搜索!
本文主要介绍了如何利用阿里云的 OpenSearch 和 AI 搜索开放平台来构建一个无需编写代码就能完成的图片搜索功能。
943 12
|
机器学习/深度学习 人工智能 运维
智能运维:AI驱动的IT运维革命###
【10月更文挑战第21天】 随着数字化转型的深入,智能运维(AIOps)正逐步成为企业IT管理的核心。本文将探讨AI技术如何赋能运维领域,通过自动化、智能化手段提升系统稳定性和效率,降低运营成本,并分享实施智能运维的最佳实践与挑战应对策略。 ###
1557 1
|
资源调度 分布式计算 Hadoop
实时计算 Flink版操作报错合集之perjob提交给yarn,报错显示无法连接yarn- Connecting to ResourceManager,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

热门文章

最新文章