写点什么

Instacart 将搜索基础设施迁移至 PostgreSQL,并逐步淘汰 Elasticsearch

作者:Leela Kumili

  • 2025-08-28
    北京
  • 本文字数:1179 字

    阅读完需:约 4 分钟

大小:576.75K时长:03:16
Instacart将搜索基础设施迁移至PostgreSQL,并逐步淘汰Elasticsearch

Instacart重新设计了其搜索基础设施,用 PostgreSQL 替换了 Elasticsearch,将基于关键词的检索和基于嵌入的检索整合到了一个系统中。通过将目录和搜索数据整合到 Postgres 中,该公司旨在简化操作,减少数据同步开销,并提高搜索结果的精确度和召回率。

 

重新设计的一个关键部分是改进检索结果的方式。传统的关键词搜索擅长匹配确切的产品属性,例如,像“pesto pasta sauce 8oz”这样的查询就受益于精确的词汇匹配。但是,更宽泛的意图驱动查询,如“健康食品”,通过语义检索来处理会更好,因为后者理解术语和概念之间的关系。通过在 Postgres 中结合这两种方法,Instacart 可以在精确度(只返回相关结果)和召回率(尽可能多地捕获相关项)之间取得平衡,确保客户既能看到他们正在寻找的确切产品,也能发现其他有意义的选项。

 

根据 Instacart 工程团队的说法,迁移提高了开发速度,消除了在系统之间协调数据的需要。混合基础设施还提供了更大的灵活性,方便处理动态库存和复杂的用户偏好,使平台每天能够处理数百万的搜索请求。价格、库存和折扣信息都可以实时更新,为顾客提供了更高效、更个性化的购物体验。

 

正如 Instacart 工程师Ankit Mittal所说:

 

与之前在 Elasticsearch 中使用的非规范化数据模型相比,规范化数据模型使我们的写入工作负载减少了 10 倍。这带来了将近 80%的存储和索引成本节省,减少了死胡同搜索,并改善了整体客户体验。

 

以前,Elasticsearch 处理全文查询,而事务性数据存储在 Postgres 中。维护两个独立的数据库会面临同步数据的挑战和更高的运营成本。为了增加语义搜索能力,团队最初实施了FAISS,然后过渡到使用 Postgres pgvector扩展的混合模型。这种方法允许基于词汇和基于嵌入的检索在同一个系统中运行,减少了数据重复和复杂性。


之前使用 FAISS 和 Postgres 的检索架构(来源:Instacart工程博客

 

经过重新设计的架构使用分片的 Postgres 实例和规范化的数据模型来实现水平扩展。每个分片都包含目录和搜索索引,查询通过服务层路由到适当的分片。根据 Instacart 工程师的说法,他们利用 Postgres GIN索引和经过修改的ts_rank函数实现了高性能的文本匹配,而关系模型允许 ML 功能和模型系数存储在单独的表中。与 Elasticsearch 相比,规范化使写入工作负载减少了十倍,降低了存储和索引成本。与此同时,它还支持数百千兆字节的 ML 特征数据,可实现更高级的检索模型。


使用 pgvector 和 Postgres 的混合检索架构(来源:Instacart工程博客

 

Postgres 扩展是重新设计的核心。例如,将pg_trgm用于基于三元组的文本搜索,将pgvector用于基于嵌入的搜索,从而使数据库既能处理传统的关键词搜索,又能处理语义搜索。查询通过路由层传递到包含必要索引的分片,因为无需跨系统同步,所以能高效地返回结果。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/news/2025/08/instacart-elasticsearch-postgres/

2025-08-28 15:007875

评论 1 条评论

发布
用户头像
他之所以选择这个方案,并不是es不够专业,而是因为他这个场景, 他不想维护2套系统,增加架构的复杂性,而是借助pg的升级来满足自己的需求,减少了架构层面的成本
2025-08-28 16:24 · 上海
回复
没有更多了

文心一言 VS 讯飞星火 VS chatgpt (177)-- 算法导论13.3 6题

福大大架构师每日一题

福大大架构师每日一题

500mA High Voltage Linear Charger with OVP/OCP

芯动大师

14代酷睿亮相!华硕天选5 Pro新配置开售,比13代贵500元值吗

E科讯

必须知道了解的40个SEO专业术语!

九凌网络

软件测试/测试开发/全日制/测试管理丨自动化测试框架UI Automator

测试人

小红书搜索团队提出全新框架:验证负样本对大模型蒸馏的价值

小红书技术REDtech

算法 搜索 大模型 AAAI 负样本

JD商品详情数据接口

tbapi

京东商品详情数据接口 京东API接口 京东商品数据接口 京东商品数据采集

AWS改革6万人的销售团队以解决客户投诉问题

B Impact

活动 | Mint Blockchain 将于 2024 年 1 月 17 号启动 MintID 限量发行活动

NFT Research

blockchain NFT\

左耳听风 - 有竞争力的程序员「读书打卡 day 05」

Java 工程师蔡姬

读书笔记 程序员 个人成长 读书 竞争力

软件测试/测试开发/全日制 |理解Web应用性能优化的关键技术

测吧(北京)科技有限公司

测试

亚马逊API:快速查询全球商品数据的技巧!

技术冰糖葫芦

API

青椒云桌面:企业办公网络安全的现状及解决方案!

青椒云云电脑

云桌面 云桌面系统

数据洞察力,驱动企业财务变革

智达方通

全面预算管理 财务转型 财务变革 数据洞察力

tb商品评论数据接口Python

tbapi

淘宝API接口 淘宝商品评论接口 天猫商品评论接口 天猫评论接口 淘宝评论接口

使用云桌面对于企业来说是否值得?

青椒云云电脑

桌面云 云桌面 云桌面解决方案 云桌面系统

OpenAI 自带的检索功能好用吗?定量测评带你深度了解!

Zilliz

Zilliz openai 向量数据库 zillizcloud

《产业结构调整指导目录(2024年本)》发布,模糊测试首次纳入

云起无垠

2023 IoTDB Summit:天谋科技高级开发工程师苏宇荣《汇其流:如何用 IoTDB 流处理框架玩转端边云融合》

Apache IoTDB

为什么思科愿意高价收购一家云网络创业公司

B Impact

学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程

小万哥

Python 数据库 程序人生 软件工程 后端开发

Instacart将搜索基础设施迁移至PostgreSQL,并逐步淘汰Elasticsearch_数据库_InfoQ精选文章