Indexing / querying on calendar data


I'm trying to use elasticsearch with symfony and elastica, for the first time.
I hope to receive good avises here :slight_smile:

Basically, I have a sort of calendar with users participating to events:

  • users
  • events (with date start, date end, and status*)
  • places (name)

users <n,m> events <1,1> places

*status = attribute of the user-event relation.

I need to get users listing, with events/places criterias, like:

  • users participating with "OK" status on event of place "X" from date Y do date Z.
  • users not having participated to any event on the last X months
  • users with more than 50% of status "canceled" on evens for the lase X months

So, what would be the best for indexing:

  • nesting user-events
  • nesting places or flattering place name into events?

And how to make the corresponding queries?