Die Digitalisierung und der steigende Anspruch der Nutzer an reibungslose Online-Einkaufserlebnisse stellen Unternehmen wie Instacart vor immense Herausforderungen. Als führende Plattform im Bereich Lebensmittel-Lieferdienste muss Instacart eine hochperformante und präzise Suchfunktion gewährleisten, die mit dem rasanten Wachstum des Produktkatalogs und den dynamischen Marktbedingungen Schritt hält. Das Unternehmen entschied sich daher für eine grundlegende Neuausrichtung seiner Suchinfrastruktur - weg von einer fragmentierten Lösung hin zu einer einheitlichen, modernen Architektur basierend auf Postgres. Die Suche ist bei Instacart letztlich der zentrale Zugangspunkt für Verbraucher, die Milliarden von Artikeln aus Tausenden von Einzelhändlern durchsuchen. Ziel ist es, relevante Suchergebnisse schnell und präzise anzubieten, um sowohl Kundenzufriedenheit als auch -bindung zu maximieren.
Die Herausforderung besteht darin, dass herkömmliche Volltextsuchen oftmals Schwierigkeiten haben, die semantische Intention komplexer Suchanfragen zu erfassen. So ist etwa eine exakte Produktsuche wie „Pesto Pasta Sauce 8oz“ gut mit Schlüsselwort-basierten Methoden abbildbar, während abstraktere oder allgemeinere Suchanfragen wie „gesunde Lebensmittel“ ein tieferes semantisches Verständnis erfordern. Frühere Suchsysteme bei Instacart setzten auf unterschiedliche Technologien für Volltext und semantische Suche, was mehrere Probleme mit sich brachte. Die Überschneidung der Systeme führte zu einer Überabfrage von Dokumenten, aufwendigen Nachfiltern und einem erhöhten operationalen Aufwand durch getrennte Wartung. Zudem fehlte eine effiziente Kontrolle über das Verhältnis von Präzision und Recall – wichtige Kennzahlen, die bestimmen, wie viele relevante Ergebnisse gefunden und wie viele irrelevante eliminiert werden.
Die Antwort lag in einer hybriden Suchinfrastruktur, die die Vorteile beider Suchformen in einer einzigen Datenbank vereint. Dabei setzte Instacart auf Postgres, ein bewährtes relationales Datenbanksystem, erweitert um die pgvector-Erweiterung, die das effiziente Durchsuchen von Vektor-Embeddings unterstützt. So ist es möglich, klassische Volltextrecherchen mit semantischer Suche anhand von maschinell generierten Gesichtspunkten zu kombinieren. Ein entscheidender Schritt war es, die zuvor in Elasticsearch realisierte Volltextsuche auf sharded Postgres-Instanzen mit einer hochgradig normalisierten Datenstruktur zu migrieren. Dies verringerte den Schreibaufwand drastisch, da Updaten vieler tausend Produktinformationen dynamisch und in Echtzeit erforderlich ist.
Postgres glänzt hier durch die Fähigkeit, große Mengen an Daten stabil zu verwalten und gleichzeitig komplexe ML-Features und Modellkoeffizienten in separaten Tabellen zu integrieren. Dieses Setup erlaubt die Verbindung unterschiedlich aktualisierter Datensätze per SQL und eröffnet dadurch neue Möglichkeiten für vielseitige Suchalgorithmen. Ein weiterer Vorteil war die Nähe von Compute und Storage in einer Umgebung, die den Datenzugriff optimiert und Latenzen reduziert. Anders als bei verteilten Architekturmustern, bei denen Daten per Netzwerk übertragen werden müssen, geschieht die Verarbeitung in Postgres direkt auf der Datenseite. Kombiniert mit der Verwendung von schnellen NVMe-Speichern konnte Instacart so eine Verdopplung der Performance im Vergleich zu früheren Architekturen erreichen.
Um das semantische Suchpotenzial zu ergänzen, integrierte Instacart zunächst einen separaten ANN-Dienst (Approximate Nearest Neighbor) auf Basis der FAISS-Bibliothek von Meta. Parallel wurden die Suchergebnisse der Volltextsuche und des embeddings-basierten Systems aggregiert und in einem linearen Rangierungsmodell zur finalen Ergebnisliste kombiniert. Trotz verbesserter Qualität zeigte sich, dass die Trennung der Systeme die Entwicklung flexiblerer Algorithmen einschränkte und ineffizient war, besonders was den Filteraufwand und die Systemressourcen anging. Die entscheidende Innovation bestand darin, beide Suchmechanismen in einem einzigen System zu vereinen. Postgres mit pgvector bot genau diese Möglichkeit, da es nicht nur schnelle Vektorindizes unterstützt, sondern auch klassische Textabfragen effizient abbildet.
Durch diese Integration entfielen nicht nur die Synchronisationsprobleme zwischen getrennten Datenbanken, sondern auch die Notwendigkeit zur aufwändigen Nachfilterung. Attribute wie Verfügbarkeit, Marken, Kategorien und dynamische Preise können direkt als Filterkriterien zum engen Eingrenzen der Suchergebnisse genutzt werden. Vor Einführung im produktiven Umfeld wurde das neue System in einer eigens aufgebauten Testumgebung mit realitätsnahen Zugriffsmustern geprüft. Hier zeigte sich, dass pgvector zwar leicht langsamer als FAISS bei großen Produktkatalogen war, dafür aber eine höhere Zugriffsqualität lieferte. Die Indizes wurden zudem so gestaltet, dass sie besser auf unterschiedliche Einzelhändler abgestimmt sind, anstatt für jeden Händler einzelne HNSW-Indizes zu führen.
Dies reduzierte den Wartungsaufwand erheblich und führte zu stabileren Ergebnissen. Nach erfolgreicher Evaluation ging Instacart mit der neuen Hybrid-Suche in eine A/B-Testphase, die eindeutige Vorteile belegte. Die Anzahl der „Null-Treffer“-Suchanfragen sank merklich, was sich in einer gesteigerten Kundeninteraktion und damit einem Umsatzanstieg widerspiegelte. Die lautstarke Resonanz beweist, wie wichtig eine leistungsfähige Suchinfrastruktur für geschäftlichen Erfolg im E-Commerce ist. Die in Postgres gebündelte Architektur bietet weiterhin enormes Potenzial für Erweiterungen.
Attribute können nicht nur als Filter im Vorfeld, sondern auch als zusätzliche Faktoren in Ranking-Algorithmen genutzt werden. Nutzerpräferenzen, wie Diätvorgaben, Markenloyalität oder Preissensibilität, lassen sich so individuell berücksichtigen und verbessern die Personalisierung. Viele Unternehmen im Handel streben ähnliche hybride Lösungen an. Instacarts Entscheidung für Postgres mit pgvector ist besonders bemerkenswert, weil sie ein relationales Datenbanksystem nutzt, das sich bereits bewährt hat und große Datenmengen effizient handhabt. Andere Lösungen setzen häufig auf spezialisierte Vektor-Datenbanken oder separate Systeme für verschiedene Sucharten, was zusätzliche Infrastrukturkosten und Komplexität mit sich bringt.
Zusammenfassend lässt sich sagen, dass Instacarts neue Suchinfrastruktur einen Paradigmenwechsel markiert: Statt auf diverse, getrennte Technologien zu setzen, ermöglicht die einheitliche Plattform die Nutzung der Stärken sowohl der klassischen als auch der modernen Suchmethoden. Die daraus resultierende höhere Flexibilität, Skalierbarkeit und Qualität sorgen dafür, dass Nutzer schneller, präziser und zufriedener finden, was sie suchen – eine wesentliche Grundlage, um im dynamischen Lebensmittel-E-Commerce auch zukünftig erfolgreich zu bleiben. Hinter dem Erfolg stehen die enge Zusammenarbeit mehrerer Teams, die ihre Expertise aus Bereichen wie Machine Learning, Backend-Entwicklung und Infrastruktur eingebracht haben. Der kontinuierliche Austausch sowie gezielte Optimierungen bei den Postgres-Einstellungen und Indexparametern zeigen, wie technische Details maßgeblich für die Performance sein können. Instacarts Vorstoß beleuchtet auch, wie traditionelle relationale Datenbanken durch clevere Erweiterungen und moderne Architekturideen zu einer tragenden Säule futuristischer Suchmaschinen werden können.
Für andere Unternehmen bietet dieses Beispiel Inspiration, den eigenen Suchservice mit kosteneffizienten und skalierbaren Lösungen zu modernisieren und so den steigenden Ansprüchen von Kunden gerecht zu werden. Der Weg von Instacart ist daher nicht nur ein Musterbeispiel technischer Innovation, sondern zeigt auch, wie durch die gezielte Nutzung bewährter Technologien und die Integration neuer Konzepte eine starke, flexible und leistungsfähige Suchinfrastruktur für komplexe Anwendungsfälle geschaffen werden kann. Die Kombination aus Volltext und Vektor-Suche in einer Datenbasis setzt einen neuen Standard für die Zukunft des E-Commerce-Search.