Im Zeitalter des E-Commerce ist eine leistungsfähige und schnelle Suchfunktion ein entscheidender Faktor für den Erfolg. Instacart, ein führender Anbieter im Bereich Lebensmittel-Lieferungen, stellte sich dieser Herausforderung mit einer innovativen Herangehensweise an die Suchtechnologie. Angesichts eines riesigen Katalogs mit Milliarden von Artikeln über Tausende von Einzelhändlern hinweg musste Instacart seine Suchinfrastruktur neu denken, um sowohl Präzision als auch Skalierbarkeit zu gewährleisten. Dabei setzte das Unternehmen auf eine moderne Hybrid-Sucharchitektur, die traditionelle Volltextsuche mit fortschrittlicher semantischer Suche in einer einheitlichen Datenbank – Postgres – kombinierte.Die Suche bei Instacart ist der Hauptzugangspunkt für Nutzerinnen und Nutzer, die schnell und gezielt das gesuchte Produkt finden möchten.
Die immense Zahl von Millionen Suchanfragen pro Tag erfordert eine Infrastruktur, die nicht nur große Mengen an Traffic bewältigt, sondern auch darauf vorbereitet ist, schnelle Änderungen bei Preisen, Verfügbarkeiten und Sonderaktionen in Echtzeit abzubilden. Diese dynamische Datenlage stellt enorme Anforderungen an die zugrunde liegende Technik.Ursprünglich setzte Instacart auf Elasticsearch für die Volltextsuche, ein damals weitverbreitetes und bewährtes Tool. Doch mit wachsendem Umfang und steigender Komplexität der Daten stieß dieses System an seine Grenzen. Die Notwendigkeit häufiger und großer Aktualisierungen führte zu Problemen bei der Clusterstabilität, hoher Latenz und letztlich zu unzufriedenstellenden Suchergebnissen.
Zudem wollte Instacart komplexere maschinelle Lernmodelle integrieren, um die Suchqualität mit semantischem Verständnis zu verbessern – auch dies stellte Elasticsearch vor technische Grenzen.Die Entscheidung, zur Volltextsuche auf Postgres umzusteigen, entsprang dem Wunsch, eine robustere, flexiblere und besser integrierte Lösung zu finden. Postgres bot hier diverse Vorteile: Der bereits bestehende Einsatz von Postgres für den Katalog erleichterte den Umzug, da Datenhaltung und Suche nun in einem System gemeinsam verwaltet werden konnten. Durch die Nutzung von GIN-Indizes und einer modifizierten ts_rank-Funktion wurden präzise, aber zugleich performante Volltextabfragen möglich. Die Normalisierung des Datenmodells führte zudem zu einer drastischen Reduktion des Schreibaufwands und deutlich geringeren Speicherkosten im Vergleich zur früheren, denormalisierten Elasticsearch-Variante.
Ein maßgeblicher Vorteil der Postgres-Lösung lag auch in der Nähe von Lagerhaltung und Berechnung. Anstatt Daten für die Abfrage zu einem separaten System zu senden, fanden viele Rechenoperationen direkt auf der Datenbankebene statt. Diese Verschiebung hin zur Datenverarbeitung nahe am Speicher reduzierte nicht nur Latenzen sondern auch die Komplexität der Anwendungsschicht. Überflüssiges Nachladen und Postprocessing entfielen größtenteils, was den gesamten Suchprozess deutlich beschleunigte.Doch das Thema Suchqualität beschränkte sich nicht nur auf reine Volltextsuche.
Viele Suchanfragen sind semantischer Natur und lassen sich nicht allein durch Schlagwortübereinstimmung adäquat bedienen. Hier setzt die semantische Suche an, die durch maschinelles Lernen und Vektorrepräsentationen von Texten den inhaltlichen Zusammenhang zwischen Anfrage und Produkt erkennt. Instacart führte hierzu zunächst ein separates System unter Verwendung von FAISS ein, einer populären Bibliothek für Approximate Nearest Neighbor (ANN) Suche. Dieses System erlaubte es, für jeden Suchbegriff ähnliche Dokumente anhand von Vektorabständen zu identifizieren und so auch ungefährere oder bedeutungsvoll verwandte Ergebnisse zu liefern.Das parallele Vorhandensein von zwei Suchsystemen – Postgres für Volltext und FAISS für semantische Suche – war jedoch mit verschiedenen Nachteilen verbunden.
Die getrennten Systeme führten zu Mehraufwand in Betrieb und Entwicklung, erschwerten die Synchronisation der Daten und erforderten zusätzliche Zwischenschritte zur Zusammenführung der Ergebnisse in der Anwendungsebene. Zudem war die Filterung nach Attributen wie Verfügbarkeit oder Marke nur eingeschränkt möglich, besonders im FAISS-gestützten Teil, was zu unnötigem Überholen der Datenmenge und somit zu ineffizienter Ressourcennutzung führte.Mit dem Ziel, diese Herausforderungen zu überwinden, entschied sich Instacart für eine konsolidierte Hybrid-Suchinfrastruktur. Im Zentrum dieser neuen Architektur steht Postgres erweitert um das Erweiterungsmodul pgvector, das die effiziente Speicherung und Suche in Vektorräumen direkt in Postgres ermöglicht. Durch die Integration von semantischer Suche in dasselbe System wie die Volltextsuche entstehen zahlreiche Vorteile: reduzierter Wartungsaufwand, bessere Datenkonsistenz, die Möglichkeit, attributionsbasiertes Filtern in Echtzeit durchzuführen, und die Fähigkeit, fein abgestimmte Steuerungen zur Balance von Präzision und Recall vorzunehmen.
Der Migrationsprozess begann mit einem Prototypencluster, auf dem das Verhalten von pgvector unter Last simuliert wurde. Die Tests zeigten, dass pgvector bei Durchsatz und Latenz den hohen Anforderungen gerecht werden kann. Parallel konnten die Entwickler Erfahrungen sammeln, wie sich die Vektorsuche in eine relationale Umgebung einfügt, ohne signifikante Qualitäts- oder Performanceverluste gegenüber spezialisierten ANN-Systemen wie FAISS zu erleiden.Interessanterweise erwies sich die Strategie, hybride Indizes abhängig von den unterschiedlichen Kataloggrößen der Einzelhändler statt jeweils einen eigenen Index pro Händler zu verwenden, als effizient und vereinfachte den Wartungsaufwand deutlich. Auch fein abgestimmte Parametereinstellungen bei Postgres, beispielsweise eine Erhöhung der Parallelitäts-Parameter für die Suche, nutzen die Hardware-Ressourcen optimal aus und verbessern die Geschwindigkeit weiter.
Im produktiven Einsatz führte die neue Hybrid-Suche bei Instacart zu messbaren Verbesserungen: Es gab einen Rückgang der Suchanfragen ohne Treffer um sechs Prozent, was die Benutzererfahrung wesentlich verbesserte. Darüber hinaus stieg der Umsatz, da Nutzer seltener Leerergebnisse sahen und somit leichter das gewünschte Produkt fanden.Ein weiterer bedeutender Vorteil der neuen Architektur ist die Möglichkeit, semantische Suchergebnisse direkt mit Echtzeit-Statusdaten wie Lagerbestand, Preisänderungen und individuellen Präferenzen zu verknüpfen und entsprechend vor- oder nachzufiltern. So entstehen Suchergebnisse, die nicht nur relevant, sondern auch aktuell und auf den Nutzer zugeschnitten sind.Instacarts Erfahrung zeigt, dass die Kombination aus traditioneller relationaler Datenbanktechnik und moderner Vektorbasierter Suche eine leistungsfähige Lösung für die Herausforderungen großer, dynamischer Kataloge bietet.
Die Lösung mit Postgres und pgvector stellt eine Brücke dar zwischen den Anforderungen an Skalierbarkeit, Flexibilität und Qualität in der Suche.Die Zukunft der E-Commerce-Suche wird vielerorts durch hybride Systeme geprägt sein, die beide Welten miteinander vereinen: Schnelle, präzise Volltextsuche und intelligente, kontextbezogene semantische Suche. Instacart hat mit seinem Ansatz gezeigt, wie eine solche Infrastruktur erfolgreich skaliert und dabei die Komplexität im Griff behält.Dabei ist zu erwarten, dass die Technologie weiter reifen wird. Beispielsweise könnten noch ausgefeiltere Filtermechanismen und eine enge Verzahnung mit Machine-Learning-Modellen künftig weitere Qualitätssprünge ermöglichen.
Auch die Integration von personalisierten Suchergebnissen, die individuelle Vorlieben und Einkaufsgewohnheiten berücksichtigen, bietet großes Potenzial.Zusammenfassend kann man sagen, dass die Migration von Instacart weg von einem fragmentierten Suchsystem hin zu einer einheitlichen Hybridlösung auf Postgres-Basis eine grundlegend nachhaltige und innovative Entwicklung war. Die Entscheidung für den relationalen Kern und die Erweiterung mit Vektorsuche demonstriert eindrucksvoll, wie traditionelle Technologien durch gezielte Innovationen modernisiert und für komplexe Anforderungen im E-Commerce fit gemacht werden können.Die Zusammenarbeit zahlreicher Teams aus den Bereichen Maschinenlernen, Infrastruktur, Backend und Core Infra war dabei unerlässlich, um dieses Vorhaben umzusetzen. Die Erfahrung zeigt, dass interdisziplinäre Kooperationen und iterative Entwicklungen entscheidend sind, um Systeme dieser Größenordnung erfolgreich zu gestalten und kontinuierlich zu optimieren.
Für den Onlinehandel bietet Instacarts Weg wichtige Erkenntnisse und Ideen, wie eine moderne Suchinfrastruktur aussehen kann: Flexibel, skalierbar, effizient und zugleich in der Lage, nutzerzentrierte, semantisch fundierte Ergebnisse zu liefern. Unternehmen, die mit ähnlichen Herausforderungen konfrontiert sind, können von diesen Erfahrungen profitieren, um ihre eigenen Suchlösungen weiterzuentwickeln und den ständig steigenden Anforderungen der Kunden gerecht zu werden.