From Text to Context: How We Introduced a Modern Hybrid Search — Ansgar Gruene, Dharin Shah

Learn how GetYourGuide built a multilingual hybrid search system combining BM25 & vector search, achieving fast CPU-only performance and improved user engagement.

Key takeaways
  • GetYourGuide implemented a hybrid search system combining traditional keyword-based search (BM25) with vector/semantic search to improve search result quality

  • The hybrid approach uses a multilingual E5 small model for vector embeddings, allowing search in 30+ languages while maintaining good performance

  • Implementation achieved P95 latency of ~200ms using CPU-only infrastructure and ONNX runtime for model serving

  • Architecture uses OpenSearch with KNN plugin for vector search, Kafka for data transport, and MLflow for model management

  • Search ranking combines three main components: vector similarity scores, BM25 keyword matching scores, and product performance scores

  • Model evaluation used NDCG metrics and real user behavior data to validate improvements

  • Team implemented dynamic templates in OpenSearch to flexibly handle vector fields and enable easy model experimentation

  • A/B testing showed increased user engagement and revenue after deploying hybrid search

  • Key challenges included handling location-based queries effectively and ensuring good results for queries without locations

  • Future improvements include adding category search, query understanding, and optimizing vector storage through quantization