TIN Postgres搜索更快、更好、更便宜

TIN Postgres搜索更快、更好、更便宜

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

作者对比了TIN与Lakebase的Postgres全文搜索:TIN无需防抖,支持通配符自动补全和模糊匹配,不忽略停用词,毫秒级返回精确计数;Lakebase需3.6秒且仅估算3400条结果,实际为213447条。成本上,Lakebase月费约5186美元,TIN仅609美元,更快更强且便宜八倍以上。

🔎

延伸解读

精确计数与估算的差距

文章指出,Lakebase 对“show hn”搜索返回约 3,400 条结果,但实际计数为 213,447 条,且耗时 3.6 秒。TIN 则能在几毫秒内提供精确计数,即使面对复杂多词查询。对于需要准确结果数量的应用,这种差异可能影响分页、统计和用户体验。

无需防抖的即时搜索体验

原应用在每次击键后等待 250 毫秒才发起搜索,而 TIN 版本可以立即响应每次输入。这得益于 TIN 的高性能,使得开发者无需通过防抖来减轻数据库压力,从而让搜索交互更流畅、更自然。

通配符与模糊匹配的实用功能

TIN 支持通配符搜索,可将未完成的单词自动补全为前缀匹配,例如输入“datab”会匹配“database”。同时,TIN 还支持基于 Levenshtein 编辑距离的模糊匹配,当结果过少时自动对最冷门的词进行模糊处理,帮助用户找到拼写错误或变体。

成本对比:TIN 显著更经济

文章对比了两种方案的月费:Lakebase 使用 32 CU 的 Scale 实例且永不休眠,月费约 5,186 美元;TIN 使用三个 M-160 实例组成的高可用集群,月费仅 609 美元。TIN 在提供更快搜索和更多功能的同时,成本不到 Lakebase 的八分之一。

❓

Q&A

TIN Postgres搜索和Lakebase相比,速度上有多大差距?

TIN搜索响应速度远快于Lakebase。例如,搜索“show hn”时,Lakebase需要3.6秒,而TIN仅需几毫秒即可返回精确计数。在输入过程中,TIN能在11毫秒内完成搜索、计数和排名。

TIN Postgres搜索支持哪些Lakebase没有的搜索功能?

TIN支持通配符自动补全、模糊匹配(Levenshtein编辑距离),并且不忽略停用词,可以搜索常见词。而Lakebase需要防抖,不支持这些功能。

为什么TIN Postgres搜索不需要防抖?

因为TIN搜索速度极快,可以立即处理每次击键的查询,无需像Lakebase那样等待250毫秒的防抖延迟。

TIN Postgres搜索的成本比Lakebase低多少?

TIN的月费用约为609美元,而Lakebase约为5186美元,TIN的成本不到Lakebase的八分之一。

TIN Postgres搜索如何处理停用词?

TIN不忽略停用词,而是索引所有单词,因此可以搜索像“to be or not to be”或“The Who”这样的常见词短语。

TIN Postgres搜索的模糊匹配是如何工作的?

当搜索返回结果过少时,TIN会对每个词进行计数,然后对最不常见的词允许编辑距离为2的模糊匹配,如果仍不够,则逐步对所有词进行模糊匹配。

🏷️

标签

➡️

继续阅读