I had almost the same questions recently. I don't know where to find any help with such use-case, but at least I understood there are no solutions in ES at the moment to optimize requests for the large index with many documents, especially if you have many aggs, filters and sort. I'd say the best thing could be done is to write to the github issues: https://github.com/elastic/elasticsearch/issues/10767 and https://github.com/elastic/elasticsearch/issues/20131
My question is also uncommented: Generate multiple scripted fields for the whole index to filter and aggregate
Looks like here is nobody help anyone, at least for the complex questions, where the documentation cannot help.