在当今电子商务行业,搜索功能是连接用户与商品的关键桥梁,直接影响用户体验和平台转化率。Instacart作为领先的在线杂货配送平台,面对数十亿商品和海量零售商数据,致力于打造高效、精准且能适应动态变化的搜索系统。为此,Instacart选择了基于Postgres构建其现代搜索基础设施,通过融合传统全文搜索与先进的语义检索,实现了搜索性能和质量的双重提升。过去,Instacart的商品搜索主要依赖Elasticsearch进行全文检索。然而,随着商品目录规模的迅速扩大与商品属性频繁变更,Elasticsearch在写入负载和索引维护方面遇到了瓶颈。频繁的部分文档更新导致索引重建和数据同步变得缓慢且成本高昂,严重影响了搜索性能和系统稳定性。
与此同时,为了提升搜索结果的相关性,Instacart需要结合机器学习模型和语义向量检索技术,从而更好地捕捉用户意图,尤其对于模糊或复杂的搜索词如"健康食品",传统关键词检索难以满足需求。因此,Instacart开始探索将全文搜索迁移至Postgres的方案。Postgres作为一款成熟的关系型数据库,具备丰富的索引机制和扩展插件支持,其高效的GIN索引和函数如ts_rank,为文本检索提供了强有力的支持。更重要的是,Postgres的数据规范化模型相比Elasticsearch的去规范化结构,大幅减少了写入负载,节省了存储空间,同时保证数据一致性。将全文搜索层迁移至Postgres,Instacart不仅实现了搜索查询的低延迟响应,还能将机器学习特征和模型参数分表存储,灵活支持复杂的检索逻辑和个性化需求。随后,为了引入语义搜索能力,Instacart采用了基于Huggingface MiniLM-L3-v2的双编码器模型,通过构建向量嵌入表示查询与商品。
早期的语义检索借助Meta发布的FAISS库构建了Approximate Nearest Neighbor (ANN)索引,作为独立服务运行。这种独立的语义检索服务与全文检索系统并行调用,应用层负责合并两者返回的结果,再进行排序和过滤。虽然这种方法提升了召回率,但也带来了较为复杂的运维负担和数据同步挑战。此外,独立的检索系统导致过度抓取与后期筛选,浪费系统资源和增加响应延迟。为了克服这些限制,Instacart决定通过Postgres的扩展插件pgvector,将语义检索功能直接集成到Postgres中,实现真正的混合检索架构。在这一方案中,文本检索与向量检索共存于同一数据库实例,支持更加灵活的预过滤与复合查询。
pgvector提供的高效向量索引和搜索能力,与Postgres原生全文搜索相结合,使得复杂的检索请求能够在数据库层面统一处理,避免了多系统协调带来的复杂性和性能损耗。该整合不仅减少了文档过度抓取现象,还能通过实时的商品库存和属性数据进行前端过滤,降低了查询延迟。为了验证pgvector在生产环境中的性能和稳定性,Instacart设计了类似生产流量的离线实验集群,模拟实际请求量和数据规模,并对索引参数进行了精细调优。结果表明,虽然实际向量检索速度略逊于FAISS,但pgvector在召回率和系统稳定性方面表现更优,且整体架构简化极大提升了运维效率。基于离线验证的积极成果,Instacart迅速启动了面向部分用户的A/B测试。测试数据明确显示,通过pgvector支持的混合检索,搜索无结果率降低约6%,显著减少了用户遇到搜索死角的场景。
更为重要的是,这种改进带来了用户转化率和平台收入的提升,证明了混合检索架构的商业价值。此外,Postgres平台的灵活性促进了对商品属性的精准筛选,例如品牌、类别以及实时库存信息。此前,由于FAISS不支持复杂的属性过滤,导致检索结果存在一定的噪声和不相关项。现在,在Postgres层面对各种属性进行高效过滤,不仅提高了检索效率,还增强了结果的个性化匹配能力。Instacart团队通过调整Postgres的并行查询配置及存储参数,进一步优化了系统性能。将嵌入向量字段设置为内联存储,提高了检索速率且节省了存储资源,同时并行扫描的优化提升了大规模目录检索的吞吐能力。
相比传统搜索系统架构,Instacart的这一创新实践彰显了基于关系型数据库构建现代混合检索系统的巨大潜力和广泛适用性。这种融合关键词与语义搜索的统一平台,为处理复杂查询、多变库存和个性化偏好提供了强大支持。展望未来,Instacart计划持续挖掘Postgres的扩展能力,探索更多机器学习模型的集成,进一步提升搜索智能和用户体验。精细的属性过滤、多模态搜索以及深度语义理解将成为下一阶段发展的重点,确保平台既能响应实时变化,也能预测用户需求。综上所述,Instacart基于Postgres打造的现代搜索基础设施,成功解决了电商搜索中的规模、性能和相关性挑战。它通过技术创新和架构整合,构建了高效、可扩展且灵活的检索系统,不仅提升了用户满意度,也推动了业务增长。
这个案例为业界提供了有价值的参考,说明了传统关系型数据库在结合新型向量搜索能力后,如何在复杂电商场景中大放异彩。 。