Searching for a hotel is similar to searching for a flight. Customers will search for hotels in a specific city, or they can directly give the hotel name. Thus, we want to have a catalog that can serve hotels based on more than one keyword in the listings. Elasticsearch is able to handle this, and thus we can continue to use it as the key datastore for a hotel's static listing.
One of the main difference in a hotels search is the way the sellers structure prices. Hoteliers price each room on a specific day, and the customer query can be across a range of check-in and check-out dates. The naive search algorithm will just get the rates for dates between the check-in and check-out dates from the datastore and sum the rates to get the ...