I have a holiday bookings site with 1000’s of rental properties, each property could be available or not on any given day (within ~18 months into the future), each day could have a different nightly price.
I am currently using Elasticsearch with Nested objects to represent pre-calculated available date/duration/price objects (e.g. Jan 1st, N nights, €X000).
If a property is available for the entire period, this could mean 10,000’s possible date/durations per property.
In reality, we restrict the duration to up to 30 days, and not all properties are available for the full ~500 days. This still results in ~5000 date/duration combinations to index.
Along with the date, duration and price, I am indexing useful bits of information to aid searching like Name, short descriptions, images, location names, geo locations etc.
Should I be indexing all this information alongside every single date/duration? Or is there a way to use parent/child relationships somehow? Or am I worrying about nothing since we’re talking about 10’s of millions of records to search - and this is something that can be handled “fairly simply” using distinct and so on?