This document summarizes the architecture of the search engine used by booking.com. It discusses some of the challenges of handling large volumes of data including locations, reservations, reviews and availability. Early solutions involved MySQL and Elasticsearch, but these did not scale well. The current solution uses MapReduce to parallelize searches across multiple workers with local availability indices to retrieve results very quickly even for large cities. The system is statically sharded by hotel ID and availability data is continuously updated in real-time. This distributed architecture allows searches to be performed in under 30 milliseconds for large regions.