12 Punkte von xguru 2020-10-29 | 2 Kommentare | Auf WhatsApp teilen
  • Warum OkCupid sich für Vespa als Open-Source-Suchmaschine entschieden hat

  • Die Partnerempfehlungen beim Dating müssen abhängig vom Echtzeit-Ranking geändert werden, aber das bisherige Matching-System konnte den sich ständig ändernden Zustand der Nutzer nur schwer schnell widerspiegeln

  • ElasticSearch unterstützt keine In-Memory-Teilaktualisierungen

→ Dokumente sind größtenteils statisch, aber Nutzerinformationen (Likes, Verbindungen/Überspringen mit anderen Personen, Messaging) ändern sich fortlaufend dynamisch

  • Vespa: Open-Source-Suchmaschine für Big Data (eher für Serving als für Datenanalyse optimiert)

→ Unterstützt In-Memory-Teilaktualisierungen, ohne das gesamte Dokument neu indexieren zu müssen (pro Node sind 40~50K Updates pro Sekunde möglich)

→ Bietet ein flexibles Ranking-Framework, sodass Verarbeitung zur Abfragezeit möglich ist

→ Direkte Anbindung an Machine-Learning-Modelle wie TensorFlow

→ Bei REST-Aufrufen sind Abfragen mit YQL (Yahoo Query Language) möglich

→ Die Logik kann mit Java-Komponenten angepasst werden

→ Für die Skalierbarkeit muss man sich keine Gedanken über Shards machen. Bei jedem Hinzufügen/Entfernen von Nodes werden Daten automatisch wiederhergestellt und aus Replikaten neu verteilt

  • Vespa passt besser zu den internen Anforderungen von OkCupid

→ OkCupid führt vielfältige Informationen über Nutzer zusammen, um Menschen zu matchen

→ Es gibt jeweils mehr als 100 Filter- und Sortierkriterien, und ständig kommen neue hinzu, daher eignet sich Vespa gut zur Unterstützung dieses Workflows

→ Auch Datenschreibvorgänge und Abfragen ähneln dem bestehenden Matching-System

→ Das Ranking-Framework ist deutlich flexibler und intuitiver

→ Im Vergleich zur seltsamen Query-Struktur von ElasticSearch ist die Ausdruckskraft von YQL besser

→ Die automatische Datenverteilung ist für kleine Teams geeignet

2 Kommentare

 
xguru 2020-11-01

Ein koreanischer Einführungsartikel zur Geschichte und zum Wert von Vespa

Open-Source Yahoo Vespa https://web.archive.org/web/20210922122357/…
( Stand 2023 ist der Blog verschwunden, daher wurde er durch einen Wayback-Machine-Link ersetzt )

"Vespa ist zwar auch ein Motorroller-Markenname, aber zugleich die Abkürzung für Vertical Search Plaform"
"Unter den Kerntechnologien von Yahoo, von denen man meint, dass sie niemals offengelegt würden, ist Vespa eine der Technologien, die immer wieder genannt werden und dabei zu den fünf wichtigsten gezählt werden"
"Vespa ist ein Komponentenset für eine integrierte Content-Verarbeitungsplattform mit einer Suchmaschine im Zentrum. Vereinfacht kann man es als Suchmaschine betrachten, aber im Vergleich zu gewöhnlichen Suchmaschinen wie Solr oder Elastic verfügt es über deutlich mehr zusätzliche Komponenten im Umfeld."

 
xguru 2020-10-29

Der Artikel ist ziemlich lang, aber im hinteren Teil werden ab der tatsächlichen Systemarchitektur von OkCupid mit Vespa bis hin zu den Suchabfragen (YQL) konkrete Beispiele gezeigt, daher lohnt sich ein Blick in den Originaltext.

Wie auch am Ende des Artikels steht, wird ElasticSearch deutlich häufiger eingesetzt, und ein Nachteil von Vespa ist, dass die Community noch nicht besonders groß ist.

Aber wie man hier sieht, kann Vespa bei Suchen, die kontinuierlich verändert werden müssen, ebenfalls eine hervorragende Alternative sein.

Als Beispiel wurde zwar das Matching von Dating-Partnern genannt, aber auch E-Commerce-Suchen müssen heutzutage in Echtzeit verändert werden, um gute Ergebnisse liefern zu können.