Du bist nicht mit dem Internet verbunden.
Galaxus Logo
Hinter den Kulissen 2653

Je genauer man hinschaut, desto schwieriger wird's

Jeder weiss: eine funktionierende Suche macht die Orientierung im Internet erst möglich. Auch auf digitec und Galaxus gibt es eine Suche, die intensiv genutzt wird.

Mit mehreren hunderttausend Aufrufen pro Tag ist die Suche eines der meist genutzten Features auf unseren Seiten. Seit etwa einem Jahr entwickeln wir vom Team Endeavour die Suche weiter. Unser Ziel ist es, dir einen komfortablen Zugang zu unseren Inhalten zu bieten.

Am wichtigsten ist natürlich, dass die Suche schnell zum richtigen der unzähligen Produkte führt. Andererseits möchten wir euch auch Produktwissen in Form von Magazin- und Community-Beiträgen zeigen – damit du dich vor dem Kauf informieren kannst.

Aber wie baut man eine gute Suche? Was sind die Stolperfallen? Und welche Probleme müssen wir noch lösen? Für Technik-Interessierte habe ich diesen Beitrag geschrieben, der dir einen Blick in unser Engineering erlaubt.

Solide Daten sind die Basis

Um etwas durchsuchen zu können muss zunächst eine gute Datenbasis geschaffen werden. Ohne sie gibt es auch keine guten Resultate. Das ist leichter gesagt als getan, kombiniert unsere Suche doch weit mehr als nur Produktdaten. Hier kommen schnell Millionen an Inhalten zusammen. Als Nutzer ist dir das egal, du willst einfach passende Resultate übersichtlich auf einer einzigen Ansicht angezeigt bekommen. Und das schnell. Damit das möglich ist, verwenden wir die Open-Source-Suchtechnologie Elasticsearch.

In den letzten Monaten haben wir viel Arbeit in eine neue Architektur gesteckt, bei der fast alle durchsuchbaren Inhalte an unser Suchmodul in der Azure Cloud geschickt und in Elasticsearch abgespeichert werden. Beide Technologien zusammen helfen uns unter anderem, Preisänderungen in Echtzeit auf der Website zu aktualisieren und bei der Skalierung unserer Softwarelösung.

Skalierung wird immer wichtiger, denn einerseits explodiert die Zahl der Informationen regelrecht. Seitdem sich unser Team mit der Suche beschäftigt, hat sich die Datenmenge schon verdreifacht und dieser Prozess wird sich mit der Expansion ins Ausland und der Ausweitung des Sortiments noch beschleunigen.

Geschwindigkeit ist alles

So viel zu sauberen Daten und unserer technologischen Basis. Die nächste und grösste Herausforderung für eine gute Suche ist die Suchabfrage selbst. Die muss nicht nur die relevanten Ergebnisse zeigen sondern auch schnell Resultate liefern – richtig schnell. Wir reden von durchschnittlich 150 Millisekunden.

Jeder Softwareentwickler weiss, dass die Performance nicht zwingend mit der Anzahl der Features steigt. Die Komplexität steigt mit Regeln, die auf die Abfrage angewendet werden. Beispiel: Beliebte Produkte sollen prominenter gezeigt werden als selten gekaufte. Der Name soll höher gewichtet werden als ein zweitrangiges Feature des Produkts. Und das sind jetzt nur zwei offensichtliche Fälle.

Mit der Zahl der Regeln für die Suche steigt auch die Fehleranfälligkeit. Bei Änderungen muss man vorsichtig vorgehen, damit nicht plötzlich unerwartete Resultate auftauchen. A propos Fehleranfälligkeit: Auch wir Menschen sind dagegen bekanntlich nicht gefeit. Beim Tippen schleichen sich immer wieder kleine Fehler ein, die nicht zu einer Verschlechterung der Suchresultate führen sollen.

Wir haben noch viel zu tun

Manchmal arbeiten wir an Dingen, die du gar nicht sehen kannst. Höchstens spüren. Ich meine damit etwa den Umbau der Resultateseite – die nach dem Umbau immer noch genau gleich ausschaut. Unter der Haube arbeitet sie neu mit dem Frontend-Framework React. Das Liveshopping im Onlineshop verwendet heute schon React, der Checkout und andere Seiten folgen. Durch die Konvertierung versprechen wir uns einen besseren User-Flow und Performance im Browser – vor allem auf mobilen Endgeräten. Und langfristig natürlich eine schlankere Code-Basis.

Momentan sind wir im Team Endeavour immer noch dabei, die Komplexität der Suche zu meistern. Wir sind uns bewusst, dass wir bei der Suche noch sehr viel Potential für Verbesserungen haben. Ein Ansatz ist das Machine Learning (ML). Von den grossen Search Engines wie Google werden Suchvorschläge, Korrekturen und Suchtrends schon heute mit Machine Learning umgesetzt. Wir wollen uns dieses Jahr Grundwissen in diesem neuen Thema aneignen und einen ersten Prototyp umsetzen.

Jetzt du!

Die Suche ist eine Applikation, die einfach wirkt, es aber in sich hat. Je tiefer man in das Thema eintaucht, desto komplexer und herausfordernder wird es. Interessiert dich das? Oder kannst du uns gar im Bereich Elastic mit deinem Wissen unterstützen? Rein zufälligerweise suchen wir gerade Verstärkung. Wenn du dich nicht gleich bewerben willst – über Lob und Kritik freuen wir uns auch.

Avatar

Eric Funk, Zürich

  • Teamleader Software Engineering

26 Kommentare

3000 / 3000 Zeichen
Es gelten die Community-Bedingungen.

User christoph

Das hat nicht direkt mit dem Thema zu tun, aber in manchen Kategorien würde ich gerne im Filter "von - bis" wählen können. Wenn ich bei einem Kabel in 10 cm Schritten selektionieren muss, um ein Kabel zwischen 1 m und 2 m zu finden, ist das schon sehr mühsam. Ansonsten hat Digitec/Galaxus den weitaus besten Filter und das ist der Hauptgrund wieso ich hauptsächlich hier bestelle. Die Suchfunktion funktioniert übrigens auch sehr gut.

07.02.2019
User containerschiff

Genau deiner Meinung! Eine Bandbreite wählen zu können, wäre oft sehr toll (Bildschirmdiagonale, Längen, Speicherkapazität, etc)...
Aber wie gesagt, ist dies Leiden auf hohem Niveau!
Weiter so - danke!

07.02.2019
User Anonymous

Ich wünsche mir Filterfunktionen wie bei Geizhals.de. Man schaue sich hier mal die Auswahl an geizhals.de/?cat=ramddr3 (30 weitere Filter anzeigen klicken). Wenn man das mit Digitec vergleicht: digitec.ch/de/s1/producttyp... dann ist die Digitecsuche noch in den 90er
Darum finde ich bei Digitec NIE das spezifisch gesuchte. Herstellernummer hier kopieren -> google -> Herstellerseite -> pdf anschauen dauert einfach zu lange.

First and foremost, it's important to deliver a service that is useful to people.
(Larry Page @ Google)

07.02.2019
User MakeAppsNotWar

Definitiv!
@Anonymous Naja, diese 30 Filter finde ich hart übertrieben. Jemand der weiss wie viel L3 Cache er will, wird wohl schon wissen welches Modell er will.

Zudem würde ich eher sagen das Geizhals in den 90er Jahren ist. Das Design ist ja schlimm

07.02.2019
User fabianscherrer

DANKE! Mühsamster Punkt an den Filtern. (vor allem weil man bei jedem Klick die Server response abwarten muss)
Mein Vorschlag: Ein Ranged Slider (z.b. so: jqueryui.com/slider/#range)

08.02.2019
User fabianscherrer

Ausserdem sehr vermisst: Einschränkung nach Preis.

08.02.2019
Antworten
User amohr102

Danke für den interessanten Artikel. Noch viel wichtiger als die Suche finde ich aber, dass auch wirklich bei allen Produkten die Spezifikationen sauber ausgefüllt werden. Am stärksten merkt man das bei "Ja/Nein"-Filtern. Theoretisch müsste dort die Summe der "Ja"-Produkte und der "Nein"-Produkte gleich der Anzahl Produkte ohne Anwendung dieses Filters sein. Hier gibt es meiner Meinung nach noch gewaltiges Potential.

07.02.2019
User Anonymous

genau! :)

08.02.2019
Antworten
User Anonymous

Was mich an der Suche stört ist das ein Suchergebnis zwar vefeinert, aber nicht mehr gefiltert werden kann. Beispielsuchbegriff: DDR4 RAM

Eine erste eingabe liefert zwar schon ergebnisse und in der linken nav kann ich meine suche verfeinern und z.b. arbeitsspeicher auswählen. Ich kann das anschliessende Resultat aber nun nicht mehr nach z.B. Marke filtern.

Ich kann jedoch meinen suchbegriff erweitern und DDR 4 RAM crucial eingeben. dann bekomm ich nur arbeitsspeicher der marke crucial. aber auch hier wieder kann ich nicht weiter filtern.
klar könnte ich nun ein genaues abfrage query eingeben und weitere filter in die abfrage einfügen wie 2400 16gb etc. aber trotztem sind die ergebnisse dann nie genau was ich suche. Desshalb benutz ich die suche eher selten, dafür die Sidenav umso mehr, da ich so richtig filtern kann. nur muss man so ein wenig wissen in welchem bereich das entsprechende Produkt zu finden ist.

Ich verstehe einfach nicht ganz warum man zwar ein ergebniss verfeinern kann (wie im ersten beispiel nach arbeitsspeicher), dann aber nicht in die entsprechende Produktkategorie kommt, wo man die möglichkeit zum filtern hat.

07.02.2019
User psytraxx

Die bestehende Trennung zwischen Filterung und Suche wird mit der Zeit immer mehr verschwinden. Bzw werden sie sich besser ergänzen damit das für dich als User besser funktioniert. Suche auf der Filterung. Filterung auf der Suche . Hier wird ganz sicher noch etwas passieren!

07.02.2019
User Anonymous

Das fände ich super, denn das ist für mich das grösste problem an der suche.

08.02.2019
Antworten
User Sinthoras

Bin begeistert von eurem Technologie-Stack :-). Cool, dass ihr immer wieder solche Insight-Artikel publiziert, das erweckt Interesse - evtl. ergibt sich dann mal was in Zukunft ;o

07.02.2019
User Paescu997

Cooler Beitrag, und tatsächlich gespürte Verbesserung der SuchErgebnisse in letzter Zeit...
Btw; kleiner Vertipper:"Unter der Haube arbeitet sie neu **mit dem mit dem** Frontend-Framework React."

Keep going, Team Endeavour! ;)

LG Päscu


PS: Ich unterstütze die Meinung betreffend Filterfunktion "von-bis"; wobei ich finde, dass das nichts mit dem Beitrag zu tun hat ^^

07.02.2019
User psytraxx

Danke Päscu! Das motiviert!

07.02.2019
Antworten
User Mansgo

Guter Beitrag!
Elasticsearch ist echt eine tolle Sache, wenn man in grossen Datenbeständen suchen möchte (besonders etwas komplexere Suchanfragen) ist es ein richtiger Segen.

08.02.2019
User Craz7Shadow

Danke für den Beitrag!

Hab noch eine Wortwiederholung gefunden:
"Jeder weiss: eine funktionierende Suche macht die Orientierung im im Internet"

08.02.2019
User Eric Funk

Danke - ist behoben - zusammen mit ein paar anderen Typos :)

08.02.2019
Antworten
User M4nuu

Verwendet eine AI für die Suche, welche von Besucherverhalten (erfolgreicher Suchbegriff welcher zur Bestellung führte) das Ranking des Begriffes positiv beeinflusst und Begriffe welche nicht zum Abschluss führten herabstuft.

07.02.2019
User Eric Funk

Wenn du dich damit auskennst - Wir suchen Verstaerkung im Team in genau solchen Themen!

08.02.2019
Antworten
User StageSolutions

Was Ihr unverständlicherweise immer noch nicht könnt, ist Filtern nach "an Lager". (Ist zwar zurzeit nicht ganz so sinnvoll, da Ihr sowieso nur noch einne Bruchteil der Ware wirklich am selben Tag verschickt - aber das könnte ja mal wieder ändern ?).

08.02.2019
User Hon Nguyen

Es gibt seit ein paar Wochen neue Filter, unter anderem den Filter "Produkte an Lager". Diesen findest du direkt unter dem "Filter ausklappen" Button.

08.02.2019
Antworten
User antoniusmaximus

Hallo Eric, habe ein Beispiel, das bei mir nur Kopfschütteln auslöst. Suche nach dem lagerhaltigen Teil 'sigma 20mm',
Suchresultat: Meintest du: 2016
dann Anzeige diverser Sigma Zooms ohne 20mm und erst an 4. Stelle kommt das 20mm Objektiv

auch wenn ich dann die Suche mit 'sigma 20mm nikon' verfeinere, kommt nicht das Objektiv das ich suche an erster Stelle

09.02.2019
User Eric Funk

Das loest nicht nur bei dir Kopfschütteln aus! Und es gibt noch jede Menge andere dieser extremen Beispiele. Wir haben eine Story im aktuellen Sprint um das ganze nochmal zu analysieren und hoffentlich zu verbessern.

09.02.2019
Antworten