Vespa vs. ElasticSearch
(tech.okcupid.com)-
Pourquoi OkCupid a choisi Vespa comme moteur de recherche open source
-
Il faut pouvoir modifier en temps réel le classement des profils recommandés, mais le système de matching existant reflète difficilement assez vite l’état des utilisateurs, qui change en permanence
-
ElasticSearch ne prend pas en charge les mises à jour partielles en mémoire
→ Les documents sont en majorité statiques, mais les informations utilisateur (likes, connexions/pass avec d’autres personnes, messagerie) évoluent en continu de manière dynamique
- Vespa : moteur de recherche open source pour le big data (optimisé pour le serving plutôt que pour l’analyse de données)
→ Prend en charge les mises à jour partielles en mémoire sans nécessiter une réindexation complète des documents (40 à 50K mises à jour par seconde et par nœud)
→ Fournit un framework de ranking flexible, exploitable au moment de la requête
→ Intégration directe avec des modèles de machine learning comme TensorFlow
→ Lors des appels REST, permet d’effectuer des requêtes avec YQL (Yahoo Query Language)
→ Possibilité de personnaliser la logique avec des composants Java
→ Côté scalabilité, il n’est pas nécessaire de se soucier des shards. À chaque ajout ou retrait de nœuds, les données sont automatiquement restaurées et redistribuées depuis les réplicas
- Vespa correspond mieux à l’environnement interne d’OkCupid
→ OkCupid met en relation les personnes en unifiant de nombreuses informations sur les utilisateurs
→ Il y a plus de 100 filtres et plus de 100 critères de tri, et leur nombre continue d’augmenter ; Vespa est donc adapté à ce workflow
→ L’écriture des données et les requêtes sont aussi similaires au système de matching existant
→ Le framework de ranking est bien plus flexible et intuitif
→ La capacité d’expression de YQL est supérieure à la structure de requête étrange d’ElasticSearch
→ La fonction de déploiement automatique des données convient bien à une petite équipe
2 commentaires
Article de présentation en coréen sur l’histoire et la valeur de Vespa
Yahoo Vespa open source https://web.archive.org/web/20210922122357/…
( En 2023, le blog a disparu, donc le lien a été remplacé par celui de la Wayback Machine )
« Vespa est aussi une marque de scooter, mais c’est l’abréviation de Vertical Search Platform »
« Parmi les technologies clés de Yahoo qui semblaient faire partie de celles qu’ils ne rendraient absolument jamais publiques, Vespa était toujours citée dans le top 5 »
« Vespa est un ensemble de composants d’une plateforme intégrée de traitement de contenu centrée sur un moteur de recherche. En simplifiant, on peut le considérer comme un moteur de recherche, mais par rapport à un moteur de recherche classique comme Solr ou Elastic, il possède bien davantage de composants annexes. »
L’article est très long, mais la seconde partie montre notamment l’architecture du système d’OkCupid après l’adoption de Vespa ainsi que les requêtes de recherche (YQL), donc mieux vaut consulter le texte original.
Comme c’est aussi indiqué à la fin, ElasticSearch est bien plus largement utilisé, et l’un des inconvénients de Vespa est que sa communauté reste encore limitée.
Mais comme on peut le voir ici, pour des recherches qui doivent évoluer en permanence, Vespa peut aussi être une excellente alternative.
L’exemple prend le matching de partenaires amoureux, mais les recherches e-commerce aussi doivent aujourd’hui évoluer en temps réel pour produire de bons résultats.