Thank you for the explanations. The data across all the indexes we have are very similar to each other.
I got rid of the sorting by @timestamp and now it seems to be working as expected. However, the reason I had the sorting in the first place was that I need the query to do something like this:
First: list the documents which have all the terms in order of the @timestamp field
Then: list the documents with less matching terms, again in order of the @timestamp field
Is this possible? How should I do it?