Uber

Search Context

Uber’s search infrastructure primarily serves Uber Eats — a food, grocery, and retail delivery marketplace operating globally. The search problem is inherently geo-aware: results must be filtered and ranked by delivery radius, ETD (Estimated Time of Delivery), and store availability in real time.

The same infrastructure powers multiple surfaces: Home Feed, Search, Suggestions, Ads.

Search Challenges

  • Geo-awareness at scale: sharding a global index by location without hotspots
  • Multi-category catalog: restaurants (hundreds of items) vs. grocery (100k SKUs/store) require different index layouts
  • Latency under expansion: growing delivery radius from 10–15 min to 50+ miles multiplied candidate set size
  • Real-time constraints: ETD changes constantly; indexing must reflect current delivery windows

Tech Stack

  • Custom search platform built on Apache Lucene with Lambda architecture (Spark batch + Kafka streaming)
  • H3 hexagonal geosharding for geographic partitioning
  • Four-layer architecture: Base Search → NER Query Builder → Catalog API → Search API + Algorithm Gateway

People

Use Cases

Published Articles