This simply means that the join engine cannot perform a join "on-top" of an aggregation out of thin air.
It's required to materialize the intermediate result set of the aggregation (this is the temp index) and continue processing with this data structure.
Besides reviewing your data model there's nothing you can do to prevent that.
In my experience this happens a lot with heavily stacked models (analytic view -> calc view -> calc view -> calc view ... etc.).
Sometimes it can be beneficial to "flatten" the data model in order to avoid such intermediate result sets.
- Lars